ভিএম রঙগুলি টিএমউক্সের অভ্যন্তরে এবং বাইরে আলাদা কেন দেখায়?


29

পরিবেশ:

  • ফেডোরা 25 (4.9.12-200.fc25.x86_64)
  • জিনোম টার্মিনাল 3.22.1 ভিটিই সংস্করণ 0.46.1 + জিএনউটিএলএস ব্যবহার করে
  • ভিআইএম - ভি আইএমপ্রোভ 8.0 (2016 সেপ্টেম্বর 12, সংকলিত ফেব্রুয়ারী 22 2017 16:26:11)
  • tmux 2.2

আমি সম্প্রতি tmux ব্যবহার শুরু করেছি এবং পর্যবেক্ষণ করেছি যে ভিএম এর মধ্যে রঙগুলি পরিবর্তন হয় আমি টিএমউজের ভিতরে বা বাইরে চালাচ্ছি তার উপর নির্ভর করে change নীচে একটি গিট ডিফ দেখার সময় ভিমের বাইরে (বাম) এবং টিএমউক্সের ভিতরে (ডানদিকে) স্ক্রিনশট রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

আমার TERMপরিবর্তনশীল

  • Tmux এর বাইরে: xterm-256color
  • ভিতরে tmux: screen-256color

ভিম এই টার্মিনাল প্রকারের প্রত্যাশিত হিসাবে রিপোর্ট করেছেন (মাধ্যমে :set term?):

  • Tmux এর বাইরে: term=xterm-256color
  • ভিতরে tmux: term=screen-256color

উভয় দৃষ্টান্ত 256-কালার মোডে (এর মাধ্যমে :set t_Co?) চলছে ভিমও জানায় :

  • Tmux এর বাইরে: t_Co=256
  • ভিতরে tmux: t_Co=256

Tmux- এর 256 -রঙ মোডে চালানোর জন্য ভিমকে পাওয়ার বিষয়ে অনেকগুলি একই রকম প্রশ্ন রয়েছে (আমি যে উত্তরটি পেয়েছি তার সেরা উত্তরটি এখানে রয়েছে ) তবে আমি মনে করি না যে উপরের তথ্যটি দেওয়া আমার সমস্যা।

আমি যদি টার্মিনাল টাইপের সাথে ভিম চালাই তবে tmux এর বাইরে সমস্যার নকল করতে পারি screen-256color:

$ TERM=screen-256color vim

করে নির্মিত হয় তাই আমাকে সেখানে কেবল মধ্যে কিছু পার্থক্য বিশ্বাস xterm-256colorএবং screen-256colorযে রঙের পার্থক্য ঘটায় টার্মিনাল ক্ষমতা। শিরোনামে উত্থাপিত প্রশ্নটি নিয়ে আসে যা: বিশেষত টার্মিনাল সক্ষমতায় ভিম রঙগুলি আলাদা হওয়ার কারণ কী? আমি :set termcaptmux এর ভিতরে এবং বাইরে চলার মধ্যে পার্থক্য দেখতে পাচ্ছি , তবে আমি কৌতূহলবশত যা বাস্তবে আচরণের পার্থক্যের কারণ হয়ে যায়।

পূর্ববর্তী প্রশ্নের তুলনায় স্বতন্ত্র, tmux এর ভিতরে বা বাইরে চলার সময় কি ভিম রঙগুলি সামঞ্জস্য হতে পারে? কিছু জিনিস আমি চেষ্টা করেছি এর মধ্যে রয়েছে:

    সেট -g ডিফল্ট-টার্মিনাল "স্ক্রিন-256 রঙ"
    সেট -জি ডিফল্ট-টার্মিনাল "xterm-256 রঙ"
    সেট -জি ডিফল্ট-টার্মিনাল "স্ক্রিন.এক্সটার্ম -২66 রঙ"
    সেট -জি ডিফল্ট-টার্মিনাল "tmux-256 রঙ"
  • Tmux ব্যবহার করে শুরু করা হচ্ছে tmux -2

সমস্ত ক্ষেত্রে, ভিম tmux এর অভ্যন্তরে বিভিন্ন বর্ণ প্রদর্শন করতে থাকে।


আপনি কি দয়া করে শুরু করতে script, শুরু করতে vim, ছেড়ে দিতে vimএবং তার scriptশেলটি ছেড়ে দিতে এবং ফলস্বরূপ typescriptফাইলটি সংযুক্ত করতে পারেন ? তারপরে একই পদক্ষেপের TERM=screen-256color vimপরিবর্তে পুনরাবৃত্তি করুন ।
egmont


1
আমি xterm-256colorসংস্করণে 256-রঙের পালানোর সিকোয়েন্সগুলি দেখতে পাই (ফাইলটিতে "38; 5;" অনুসন্ধান করুন), কিন্তু এটিতে পারি না screen-256color। যেমন যেখানেই আছে একটি \e[38;5;81mমধ্যে xterm-256color(রঙ # 256-রঙ প্যালেট 81, একটি মধ্যম নীল ছায়া), screen-256colorধারণ \e[34mপরিবর্তে (8-রঙ প্যালেট মান নীল)। সুতরাং মূল প্রশ্নটি কেন ভিএম 256 রঙের প্যালেটটি ব্যবহার করে না TERM=screen-256color
উদাহরণস্বরূপ

আর একটি আকর্ষণীয় বিষয় হ'ল xterm-256colorসংস্করণটি স্ক্রিনটি দু'বার মুদ্রণ করবে বলে মনে হচ্ছে প্রথমে উত্তরাধিকারের বর্ণগুলি এবং তারপরে 256 রঙের প্যালেট দিয়ে। যেমন ফাইলে "এফ 1" এর জন্য অনুসন্ধান, আপনি দুই ম্যাচে পাবেন xterm-256color, প্রথম \e[34mরঙ, দ্বিতীয় \e[38;5;81m। আমি জানি না এখানে কী চলছে।
উদাহরণস্বরূপ 21

যোগ করার পদ্ধতি set -g default-terminal "screen.xterm-256color"মধ্যে ~/.tmux.confএবং tmux মধ্যে কনফিগ রিলোড (<? Cs>: উৎস ফাইল ~ / .tmux.conf) আমার (হাইলাইট ইস্যু) কাজ করেন। thx
dtrckd

উত্তর:


16

tmuxএর "ডিফল্ট রঙ" স্কিমটি ব্যবহার করবেন কিনা তা সিদ্ধান্ত নেওয়ার জন্য bceযা vimচেক করে তা টার্মিনো ক্যাপিবিলিটি (ব্যাক কালার ইরিজ) সমর্থন করে না ।

এর বৈশিষ্ট্যটি tmuxকয়েকবার উল্লেখ করা হয়েছে -


ঠিক ঠিক যে ধরণের বুদ্ধি-সন্তুষ্টির উত্তর আমি সন্ধান করছিলাম। ধন্যবাদ!
মরিচা শ্যাকলফোর্ড

17

আমার আগেও একই রকম সমস্যা ছিল। ভিমে নীল রঙের মন্তব্যগুলি পড়া শক্ত ছিল। ইন .tmux.confআমি এই সেট করুন:

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

এবং এতে .vimrc:

set background=dark

এখন এটি নীচের মতো দেখায় এবং জ্ঞোম টার্মিনাল এবং সাইগউইন উভয় ক্ষেত্রেই কাজ করে: এখানে চিত্র বর্ণনা লিখুন


3
এটি আমার জন্য এটি সমাধান করেছে। কিছু কারণে tmux এর ভিতরে, ভিম একটি অন্ধকার পটভূমি সনাক্ত করছে না। স্পষ্টতই bg=darkআমার vimrc এ সেট করে এটি ঠিক করে দিয়েছে।
অ্যাডাম

অদ্ভুত - আমার $TERMভিতরে এবং বাইরে উভয়ই tmuxছিল "xterm-256color"এবং স্পষ্টতই ব্যাকগ্রাউন্ডটি সেটি আমার জন্যও করেছিল। ধন্যবাদ!
nronnei

আমার জন্যও কাজ করেছেন। আমি ভেবেছিলাম সমস্যা ছিল sttermকারণ এ xfce4-terminalসবকিছু আরামদায়ক লাগছিল (মন্তব্য প্রদর্শনে cyanপরিবর্তে blueযা গাড় পটভূমির সাথে পড়তে খুব কঠিন)। এই পরিবর্তনের পরে সবকিছু ঠিকঠাক কাজ করে। তবে unlet! skip_defaults_vim source $VIMRUNTIME/defaults.vimসিনট্যাক্স হাইলাইটিং ইত্যাদি ব্যবহার করতে ভিআইএমআরসি ফাইল যুক্ত করতে ভুলবেন না ...
অবিনাশ ড্যাশ

2

ভিম কখন রঙগুলি আউটপুট করছিল সে সম্পর্কে @ এমমন্টের বিশ্লেষণকে ধন্যবাদ TERM=screen-256color, আমি দুটি বর্ণনায় ভিম যে রঙীন স্কিমটি ব্যবহার করছে তা দেখার জন্য অনুপ্রাণিত হয়েছি।

উভয় ক্ষেত্রে এটি defaultরঙিন স্কিম ব্যবহার করছে বলে ভিম জানিয়েছে । আমি ভীষণ ভেবেছিলাম কারণ ফেডোরা 25 ( ) -তে রঙিন স্কিমটি আমি কখন দেখি সেই রঙগুলির সাথে মেলে না । যদি আমি স্পষ্টভাবে ব্যবহার করে রঙিন স্কিমটি সেট করি তবে কখন , ভিমের উপস্থিতি পরিবর্তিত হয় । আমি যখন প্রথম ভিম শুরু করলাম তখন রঙগুলি কী ছিল সেগুলি ফিরে পেতে, আমাকে রঙিন স্কিম ব্যবহার করতে হয়েছিল । অগ্রগতি!default/usr/share/vim/vim80/colors/default.vimTERM=xterm-256color:colorscheme defaultTERM=xterm-256colorTERM=screen-256colorron

আমি একটি জিজ্ঞাসা উবুন্টু উত্তর পেয়েছি যা পরামর্শ দেয় যে ভিম যখন এটি defaultরঙিন স্কিমটি ব্যবহার করছে বলে প্রতিবেদন করে , তখন এটির প্রয়োজনীয়তাটি বোঝানো হয় না default.vimবরং কিছু থিম-নির্দিষ্ট রঙের স্কিম। উত্তরটি উল্লেখ করেছে যে, একটি অন্ধকার থিম (যা আমি ব্যবহার করছি) ronরঙ স্কিমের সাথে মিলে যায়, ঠিক যেমনটি আমি উপরে আবিষ্কার করেছি। (যদিও এই পোস্টটি উবুন্টুকে সম্মান করে, আমি ধরে নিচ্ছি যে ওপি জিনোম ব্যবহার করছে using)

আমি আরও একটি প্রশ্ন পেয়েছি যা দেখে মনে হচ্ছে যে একই সমস্যাটি আমার রয়েছে describe আমি এই প্রশ্নটি পোস্ট করার আগে অনুসন্ধানের সময় আমি এটি পেরিয়ে এসেছি, তবে কোনও কারণে রঙিন স্কিমটি প্রাসঙ্গিক বলে আমাকে আঘাত করে নি।

@ ল্যাপশিনডিমিত্রি তার উত্তরে যা করেছিলেন তা আমি শেষ করেছি এবং স্পষ্টভাবে colorscheme ronআমার ~/.vimrcফাইলে সেট করেছি । এখন, আমি tmux এর ভিতরে বা বাইরে ভিম শুরু করি, রঙগুলি একই প্রদর্শিত হয়। একমাত্র ত্রুটি যদি আমি কখনও ডেস্কটপ থিমটিকে অন্ধকার স্বাদ থেকে হালকা স্বাদে পরিবর্তন করি তবে ভিম স্বয়ংক্রিয়ভাবে "ডিফল্ট" হালকা থিম রঙের স্কিমে স্যুইচ করবে না, যা দৃশ্যত peachpuff। আমি এটি নিয়ে বাঁচতে পারি, কারণ আমি আমার থিমটি পরিবর্তন করার সম্ভাবনা কম।

আমি এই উত্তরটি গ্রহণ করতে যাচ্ছি না কারণ আমি ~/.vimrcসমাধানের চেয়ে বর্ণা scheme ্য রঙে আমার বর্ণনাক্রমে সেটাকে সুস্পষ্টভাবে বিবেচনা করছি । যদি কেউ ব্যাখ্যা করতে পারে যে ভিম কেন পৃথক "ডিফল্ট" রঙের স্কিমটির মানের উপর নির্ভর করে লোড করে TERM, আমি সেই উত্তরটি গ্রহণ করতে পেরে খুশি হব, কারণ আমি মূল কারণটি বুঝতে আরও আগ্রহী। আমি সন্দেহ করি যে ভিম কীভাবে দুটি টার্মিনো ফাইলগুলির মধ্যে টার্মিনাল ক্ষমতাগুলি ব্যাখ্যা করে তার সাথে এর কিছু করার রয়েছে।


আমি কেন আগ্রহী যে কেন vimএইভাবে আচরণ করে। সর্বোপরি, bceসামর্থ্যের রঙের উপলব্ধ সংখ্যার সাথে কোনও সম্পর্ক নেই do
উদাহরণস্বরূপ

@ ইগমন্ট আমি @ থমাসডিকি'র জবাবটি ব্যাখ্যা করেছিলাম: ১) ভিম bceটার্মিনালের দক্ষতা পরীক্ষা করে , 2) উপস্থিত থাকলে রঙিন স্কিম "এ", 3) নির্বাচন করুন, অন্যথায় রঙিন স্কিম নির্বাচন করুন "বি"। আমি বিশ্বাস করি উভয় ক্ষেত্রেই রঙের গভীরতা একই (যেমন 256 টি রঙ হিসাবে t_Coশো হিসাবে )। এটি কেবলমাত্র আমার সিস্টেমে রঙিন স্কিম "বি" কেবলমাত্র 86 রঙের প্যালেট ব্যবহার করার জন্য ঘটেছে যদিও 256 টি রঙ সম্ভব ( যদিও আমি মনে করি যা আপনার টাইপস্ক্রিপ্ট বিশ্লেষণে আপনি যা দেখেছেন তা ব্যাখ্যা করে; দয়া করে আমি ভুল হলে আমাকে সংশোধন করুন)। মনে রাখবেন, আমি চালানোর পরে :colorscheme ron, আমি একই ভিম সেশনে 256-রঙের পালানোর সিকোয়েন্স দেখতে পাচ্ছি।
রাস্টি শ্যাকলফোর্ড

ব্যাখ্যার জন্য ধন্যবাদ - যদিও এর পিছনে আমি এখনও কোনও যুক্তি দেখতে পাচ্ছি না। কিছু মনে করো না. vimসত্যই অদ্ভুত নকশা সিদ্ধান্ত আছে।
egmont

0

আমার TERM ভেরিয়েবলটি বাইরে tmux: xterm-256 রঙের অভ্যন্তরে tmux: স্ক্রিন-256 রঙ

এটি সঠিক এবং আমার পক্ষে কাজ করছে। জিনোম টার্মিনালটি সমস্যা কিনা তা দেখার জন্য এটি একটি আলাদা টার্মিনাল দিয়ে চেষ্টা করুন (আমি urxvt ব্যবহার করি)। 

এছাড়াও পরীক্ষা করুন COLORTERM(আমার সেট করা আছে rxvt) এবং unset TERMCAP


পরামর্শের জন্য ধন্যবাদ। আমি (বাইরের urxvt সঙ্গে একই পরীক্ষা দৌড়ে TERM হয় rxvt-unicode-256color) একটি যথাযথ ব্যবহার ~/.Xdefaultsএখনো এবং দুর্ভাগ্যবশত ভিতরে এবং tmux বাইরে বিভিন্ন রং পরিলক্ষিত। জিনোম-টার্মিনাল দৃশ্যকল্প জন্য COLORTERMহয় truecolorএবং TERMCAPউভয় ভেতরে ও বাইরে tmux খালি। Urxvt দৃশ্যকল্প জন্য COLORTERMহয় rxvt-xpmবাইরে truecolorভিতরে tmux যখন TERMCAPউভয় ভেতরে ও বাইরে tmux খালি।
রাস্টি শ্যাকলফোর্ড

@ রাস্টি শ্যাকলফোর্ড এটি কি কেবল ভিমের জন্য? আপনি কি 'টার্মগিকোলারস' ব্যবহার করছেন? :help xterm-true-colorআরও একবার ডিফল্ট ভিম কনফিগার ব্যবহার করে দেখুন বা দেখুন ।
লকটক

আমি এতক্ষণ কেবল ভিমে সমস্যাটি লক্ষ্য করেছি (যেমন আমি বলেছি, আমি সম্প্রতি সবেমাত্র tmux ব্যবহার শুরু করেছি)। উদাহরণস্বরূপ, আমার টার্মিনাল প্রম্পট এবং গিট সি এল এল আউটপুটে tmux এর ভিতরে এবং বাইরে উভয় ক্ষেত্রে একই রঙ রয়েছে বলে মনে হচ্ছে। আমি সেট না termguicolorsআমার মধ্যে .vimrcএবং :set termguicolors?রিপোর্ট notermguicolorsউভয় ক্ষেত্রেই। আপনার উল্লেখ হওয়া সহায়তা বিষয়টি আমি দেখব; ধন্যবাদ!
রাস্টি শ্যাকলফোর্ড

0

আমার নিজের রেফারেন্সের জন্য পরে যখন আমি নিঃসন্দেহে আমার পরবর্তী মেশিনটি এই সেটআপটি গুগল করি।

  • ভিম 8 / নিওভিম
  • উইন্ডোজ 10
  • গিট বাশ
  • টিমাক্স ২.7

গিট ব্যাশের পাথে প্রয়োজনীয় বাইনারি এবং ডিএলএল পেতে এই নির্দেশিকাগুলি ব্যবহার করুন:

https://blog.pjsen.eu/?p=440

কনফিগার করতে এই আদেশগুলি ব্যবহার করুন:

echo 'set -g default-terminal "screen.xterm-256color"' > ~/.tmux.conf
tmux -2u
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.