Tmux মধ্যে ভিম পটভূমি জন্য 256 রঙ সমর্থন


98

tmux এর মধ্যে ভিম ব্যবহার করার সময় আমি দেখতে পারি যে 256 রঙ সমর্থন সক্রিয় করা আছে। $ টুপি রং সঙ্গে

তবে ভিম-এ রংচেম পরিবর্তন করলে টিএমএক্সে প্রতি লাইনের ভিত্তিতে রংচেম পরিবর্তিত হবে তবে সমগ্র ব্যাকগ্রাউন্ডটি পরিবর্তিত হবে না। স্ক্রিনশট দেখুনএখানে ছবি বিবরণ লিখুন

এখানে উদাহরণস্বরূপ আমার .vimrc ফাইলের একটি স্নিপেট। আমার আসল রংচেকে অন্ধকার সৌরশক্তিযুক্ত এবং তারপর চলার পরে: রংচেম মোলোকাই আপনি কি দেখতে পান।

তথ্য

  • জিনোম-টার্মিনাল
  • সজোরে আঘাত

আমার ~ / .tmux.conf মধ্যে

    set -g default-terminal "screen-256color"

আমার ~ / .vimrc মধ্যে

    set t_Co=256

আমার ~ / .bashrc মধ্যে

# ryan
export TERM="xterm-256color"
# ryan
alias tmux="tmux -2"

আমার ~ /। প্রোফাইল

# ryan 256 color support
if [ -e /usr/share/terminfo/x/xterm-256color ]; then
    export TERM='xterm-256color'
  else
    export TERM='xterm-color'
  fi

কোন ধারনা আমি ভিম একটি পূর্ণ রংcheমে পরিবর্তন পেতে পারেন কিভাবে? সব ভাল ফাইল খুঁজছেন আমার snippets হয়?


যদি আপনি স্বাভাবিক মোডে নিয়ন্ত্রণ-এল টিপুন বা "redraw" কমান্ডটি চালান তবে কী হবে?
হেপতাইট

@ হ্যাপাইটাইট কিছুই ঘটেনি এখনও রঙ পরিবর্তন প্রতি লাইনে স্ক্রিনশটের মত
Winchendonsprings

উত্তর:


74

আপনার .bashrc এবং .profile এর চেহারা থেকে, tmux এর ভিতরে শেলগুলি আপনার tmux conf মধ্যে 'ডিফল্ট-টার্মিনাল' সেটিংকে ওভাররাইড করছে। এটার মতো কিছু:

  • tmux সঙ্গে নতুন শেল তৈরি করে TERM=screen-256color
  • .bashrc / .profile রান, সেট TERM=xterm-256color
  • vim রান, tmux জন্য ভুল TERM ব্যবহার করার চেষ্টা করে

আপনি চলমান দ্বারা এই চেক করতে পারেন

echo $TERM

একটি তাজা Tmux শেল মধ্যে।

Tmux সঠিকভাবে একটি টার্মিনাল সেট থাকার সম্পর্কে অপেক্ষাকৃত picky হয়। যদি আপনি করতে পারেন, গনোম-টার্মিনাল এর কনফিগারেশনে শব্দ মান নির্ধারণ করুন, আপনার .bashrc তে নয়। যে ব্যর্থ, "পর্দা" বা "পর্দা -256 রঙ" TERM জন্য একটি চেক সঙ্গে যারা সেটিংস ঘেরা, এবং যে ক্ষেত্রে তাদের পুনরায় সেট করবেন না।

Tmux সত্যিই টার্মিনাল সেট screenবা চায়screen-256color


5
ভাল আপনি এটা সংশোধন করা হয়েছে। আমি কেবল আমার .bashrc এবং আমার। প্রোফাইল ফাইলগুলির মধ্যে যেকোনো কিছু মন্তব্য করেছিলাম যা রঙটি 256 এ সেট করতে হয়েছিল। পুনঃসূচনা টিএমক্স এবং ভিম সঠিক ব্যাকগ্রাউন্ড এবং 256 রঙ সক্ষম করে পুনরায় কাজ করে। গনোম-টার্মিনাল কনফিগারেশন ফাইল কোথায় আপনি আমাকে বলতে পারেন? এছাড়াও যখন আপনি tmux টার্মিনাল সেটকে 'স্কিফেন -256 রঙের' করতে চান তবে, আপনি কি আমার tmux.conf তে এটির মতো মানে? ধন্যবাদ
winchendonsprings

আমার কাছে এটি পরীক্ষা করার জন্য গনোম-টার্মিনাল সহ একটি মেশিন নেই, তবে সেটিংটি সম্ভবত 'প্রোফাইল সেটিংস' এর অধীনে বা অন্য কিছুতে GUI- এ কোথাও থাকা উচিত।
ব্লোয়ার

5
এছাড়াও, হ্যাঁ, tmux এটি spawns শেল তার নিজস্ব জিনিস করতে দিন। set -g default-terminal "screen-256color"আপনার tmux conf মধ্যে লাইন ছেড়ে দিন ।

2
উপরের সবগুলিই আমি পরে যাচ্ছিলাম (TERM সঠিকভাবে সেট করা এবং tmux এ ওভাররাইড না করা নিশ্চিত করে), এবং তারপর আমাকে টিএমক্স-আপ লোড করতে 'tmux-2' ব্যবহার করতে হয়েছিল।
ফন্টমোভাল

চেষ্টা করুন if [[ $TERM == xterm ]]; then TERM=xterm-256color; fi, এটা আমার জন্য কাজ করে।
অসমমেচক

59

এখানে ব্যাখ্যা করা হয়েছে , টার্মিনাল বিকল্পটি সাফ করে ব্যাকগ্রাউন্ড কালার ইরেজ (বিসিই) নিষ্ক্রিয় করুন t_ut( :set t_ut=ভিমে রান করুন এবং তারপরে টার্মিনালের ডিসপ্লে রিফ্রেশ করতে Control+ টিপুন L) যাতে টিমস এবং জিএনইউ স্ক্রিনের ভিতরে ভিম ব্যবহার করা হয়, যাতে রঙের স্কিম সঠিকভাবে কাজ করে।


7
এই একমাত্র জিনিস যা অবশেষে আমার জন্য কাজ করে!
ওজ 1২3

3
আমি set t_ut=আমার ভিমার্কে যোগ করলাম যা কমান্ডটি ম্যানুয়ালি ব্যবহার করার প্রয়োজনীয়তাটি সরিয়ে দেয় এবং <bbd> কন্ট্রোল </ kbd> + <kbd> L </ kbd> ব্যবহার করার কোন প্রয়োজন নেই কারণ বিসিই নিষ্ক্রিয় হওয়ার সাথে সাথে সূচনা শুরু হয়।

PUTY ব্যবহার করার সময় এটি অপরিহার্য। Colorcheme একটি ব্যাকগ্রাউন্ড আছে যখন সব টিইআরএম সমন্বয় সংক্ষিপ্ত পতন। থ্রেড গ্রেট যোগ।
বোটিমার

এই কাজটি, তবে যখন এই সমাধানটি প্রয়োগ করা হয় তখন মাউসের সাথে অনুলিপি করা এবং পেস্ট করাও কপি করে এবং স্পেসগুলি পূর্ববর্তী লাইনগুলি (যদি তারা হাইলাইট করা থাকে।) পেস্ট করে।
ঘোড়া চুল

17

আমি এই পোস্টে একটি ভাল উপায় খুঁজে পেয়েছি । আপনি tmux এর একটি উপনাম তৈরি করতে পারেন tmux -2যা শেলটি 256 রঙের টার্মিনাল ব্যবহার করে অনুমান করতে টিএমক্সিকে বাধ্য করবে।


3

# উবুন্টু এবং # ম্যাক এ আমার জন্য এটি কি কাজ করেছে:

# File: ~/.bashrc (Ubuntu), ~/.bash_profile (Mac)
# for VIM and TMUC
if [ "$TERM" = "xterm" ]; then
  export TERM=xterm-256color
fi
alias tmux='tmux -2'  # for 256color
alias tmux='tmux -u'  # to get rid of unicode rendering problem

পুনরায় লোড সেটিংস:

$ উৎস ~ / .bashrc # উবুন্টু

$ উৎস ~ /। bash_profile # ম্যাক

ম্যাকের জন্য .bashrc সেট আপ করুন (এটি tmux দ্বারা ব্যবহৃত হয়)

# File: ~/.bashrc (Mac)
source ~/.bash_profile

~ / .Tmux.conf এ "ডিফল্ট-টার্মিনাল" বিকল্পটি সেট করুন।

# File: ~/.tmux.conf
set -g default-terminal "screen-256color"  # Mac and Ubuntu

1

একটি দ্রুত ফিক্স টার্মিনালে নিম্নলিখিত চালানো হয়।

export TERM=xterm-color

আপনি ~/.bash_profileশুরুতে সেট করতে আপনার বা অন্য প্রোফাইলে এটি যোগ করতে পারেন ।


ধন্যবাদ! .zshrcদৃশ্যত দৃশ্যমান হওয়ার জন্য ভিজ্যুয়াল মোড পেতে আমার এটিকে যোগ করার জন্য এটিই আমার প্রয়োজন ছিল ।
ড্যানমার্কল

1

আমি gnome-terminal + tmux + vim এর জন্য খুব অনুরূপ সমস্যা ছিল কিন্তু এটি নির্দিষ্ট কী সংমিশ্রণ সমস্যাতেও প্রসারিত হয়েছিল:। আমি একসাথে কিছু জিনিস একত্রিত ছিল। প্রথমে আমি আমার .tmux.conf সেটআপ করতে হয়েছিল:

# Ensure terminal starts with its own colour scheme (helps Vim/Neovim themes to not break)
set -g default-terminal "xterm-256color"
# set -g default-terminal "screen-256color" # no S-Fx keys ;-(
# and ensure the key-codes are xterm alike
set -g xterm-keys on

তারপর। Vimrc মধ্যে:

if $COLORTERM == 'gnome-terminal'
      set t_Co=256
endif
set t_ut=

এবং যে কি এবং পটভূমি জন্য কাজ করেনি।


1

যদি আপনি এখনও সমস্যাগুলির মুখোমুখি হন তবে আমি লক্ষ্য করেছি যে t_Co=8ভিমটি যদি $TERMসেট করা থাকে তবে এমনকি tmux এর ভিতরে বিকল্পটি ব্যবহার করে ফিরে আসে screen-256color। আমার workaround vimrc এই স্নিপেট হয়:

if exists("$TMUX")
        set t_Co=256
        set notermguicolors
else
        set termguicolors
endif

$TMUXপরিবর্তনশীল শুধুমাত্র একটি tmux অধিবেশন ভিতরে যদি পূর্ণ। এই ক্ষেত্রে, আমি ভিম 256 রং ব্যবহার করার অনুমতি দেয়। মনে রাখবেন যে আমি টার্মগিকোলারগুলিও সেট করি না কারণ tmux সত্যিকারের রং সমর্থন করে না।


0

শুধু এখন একই সমস্যা সম্মুখীন। Bloy এর উত্তর এবং আমার ~ /। প্রোফাইলের বর্তমান সামগ্রীর উপর ভিত্তি করে (আসলে, এটি winchendonsprings হিসাবে একই ) 'আমি নিম্নরূপ আমার সমস্যা সমাধান করেছি:

~/.profile:

if [[ -z $TMUX ]]; then
    if [ -e /usr/share/terminfo/x/xterm+256color ]; then # may be xterm-256 depending on your distro
        export TERM='xterm-256color'
    else
        export TERM='xterm'
    fi
else
    if [ -e /usr/share/terminfo/s/screen-256color ]; then
        export TERM='screen-256color'
    else
        export TERM='screen'
    fi
fi

লজিকটি সহজ: যদি আমরা tmux সেশনের ভিতরে না থাকি, তাহলে xterm (রঙিন বা না) ব্যবহার করুন। অন্যথায় পর্দা জন্য একই জিনিস।

হয়তো এটা খুব verbose, কিন্তু আপনি ধারণা পেয়েছিলাম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.