ভিমিডিফ ব্যবহার করার সময় বিভিন্ন রঙের শেম লোড করুন


137

কীভাবে করার সময় একটি ভিন্ন রঙের চেমি লোড করবেন vimdiff

আমি এটি চাই কারণ আমার বর্তমান রঙচামি vimdiff, জন্য কিছু সঠিকভাবে আলাদা হয় না । উদাহরণস্বরূপ কিছু বৈসাদৃশ্য একই এফজি / বিজি রঙের সাথে প্রদর্শিত হয়। এটি ভিন্নতা বুঝতে খুব কঠিন করে তোলে। সুতরাং প্রতিবার আমি একটি vimdiffকরি আমাকে করতে হবে:colorscheme some_other_scheme

এটি কি .vimrcফাইলের মধ্যে করা যেতে পারে ?

উত্তর:


118

আপনি যদি vimdiffকমান্ড-লাইন থেকে কল করছেন , নিম্নলিখিতটি আপনার মধ্যে রাখুন .vimrc:

if &diff
    colorscheme some_other_scheme
endif

আপনি তেজ মধ্যে থেকে vimdiff ব্যবহার করেন, তাহলে আপনি হয় কমান্ড আপনি শুরু করার জন্য ব্যবহার ওভাররাইড করতে চাই / এটি (যেমন বন্ধ diffthis, diffoff) ব্যবহার :cnoreabbr(এছাড়াও আছে একটি এর প্লাগ-ইন ) অথবা একটি autocommand ব্যবহার করুন:

au FilterWritePre * if &diff | colorscheme xyz | endif

বাইরের প্রোগ্রামের (ফিল্টার ইউটিলিটি) ফিল্টারিংয়ের আগে ফিল্টারউইটপ্রিকে ডাকা হয় এবং ডিফ-মোডে চলে যাওয়ার সময় -পশনটি ভিএম &diffদ্বারা সেট করা হয় (অন্যদের মধ্যে দেখুন, দেখুন :help diff)

আমি নিশ্চিত না যে মূল রঙচামে ফিরে আসার জন্য কোন অটোকমন্ড ব্যবহার করা উচিত।


"|" দুটি পাইপের মধ্যে একাধিক কমান্ড কল করা সম্ভব? আমিও ভিআইএম থেকে ভিডিমিফ ব্যবহারের পরে আসল রঙিনচেমে ফিরে আসতে আগ্রহী ...
এখনও কেউ আপনাকে এমএস-ডস

1
পাইপগুলি ;নতুন লাইনের বিকল্প, শেল স্ক্রিপ্টগুলির মতো, সুতরাং আপনি কেবল নতুন 'লাইন' যুক্ত করতে পারেন:if &diff | colorscheme xyz | cmd2 | cmd3 | endif
ডেটাওয়াইথ

1
colorscheme some_other_schemeআপনার রানটাইম পাথগুলি দেখে নেবে color/some_other_scheme.vim। আপনি ভিএম এর :set runtimepath?মধ্যে থেকে আপনার রানটাইমপথগুলি দেখতে পাচ্ছেন ।
পাবো

1
কনসোল ব্যবহারকারীদের জন্য (আমার মতো), আমি কমপক্ষে শেল স্ক্রিপ্টগুলির জন্য হাইলাইটেড ডিফ এবং হাইলাইট সিনট্যাক্সের মধ্যে পার্থক্য বজায় রাখার জন্য 'বিভাডচালক'কে সেরা কালারশীম (ডিফল্ট ইনস্টল সেট ছাড়াই) হিসাবে খুঁজে পেয়েছি। কাছাকাছি দ্বিতীয়টি ছিল 'সন্ধ্যা'। আশা করি এইটি কাজ করবে.
কনরাড মায়ার

আমার সমস্যাটি হ'ল সিনট্যাক্স হাইলাইটের সাথে সর্বদা বৈসাদৃশ্যের অভাব, যা বিভিন্ন বর্ণের মধ্যে পুরো পাঠকে হারিয়ে ফেলে। আমি অতীতে যেমন প্রয়োজন তেমন ': সিনট্যাক্স অফ' ব্যবহার করেছি, তবে কেবলমাত্র 'if & diff' predicate এ এটি আমার .vimrc এ যুক্ত করেছি এবং এখন কিছু কীস্ট্রোক সংরক্ষণ করেছি
qneill

166

আমি জানি না কেন ভিমে হাইলাইট করার জন্য এতগুলি রঙ ব্যবহার করে, কী ঘটছে তা নির্ধারণ করতে এটি আপনাকে সত্যই সহায়তা করে না।

আমি হাইলাইট করার জন্য শুধুমাত্র একটি রঙ ব্যবহার করতে আমার রঙিন চামড়াটি সংশোধন করেছি (যেখানে অন্য লাইনের মধ্যে একটি পার্থক্য রয়েছে তা দেখানোর জন্য) এবং এটি সমস্ত পার্থক্য তৈরি করে।

আগে

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

পরে

colorscheme_screenshot

আমি আমার কালারচেম ফাইল ( ~/.vim/colors/mycolorscheme.vim) এর শেষে নিম্নলিখিতটি যুক্ত করে এটি করেছি ।

highlight DiffAdd    cterm=bold ctermfg=10 ctermbg=17 gui=none guifg=bg guibg=Red
highlight DiffDelete cterm=bold ctermfg=10 ctermbg=17 gui=none guifg=bg guibg=Red
highlight DiffChange cterm=bold ctermfg=10 ctermbg=17 gui=none guifg=bg guibg=Red
highlight DiffText   cterm=bold ctermfg=10 ctermbg=88 gui=none guifg=bg guibg=Red
  • cterm - স্টাইল সেট করে
  • ctermfg - পাঠ্যের রঙ সেট করুন
  • ctermbg - হাইলাইট সেট
  • DiffAdd - লাইন যুক্ত করা হয়েছিল
  • DiffDelete - লাইন সরানো হয়েছে
  • DiffChange - লাইনের অংশটি পরিবর্তন করা হয়েছে (পুরো লাইনটি হাইলাইট করে)
  • DiffText - রেখার সঠিক অংশ যা পরিবর্তিত হয়েছে that

আমি এই লিঙ্কটি রঙ সংখ্যার জন্য একটি রেফারেন্স হিসাবে ব্যবহার করেছি ।

দ্রষ্টব্য: আমি গুই বিকল্পগুলি সেট করিনি কারণ আমি ম্যাকভিম / জিভিআইমের জন্য একটি পৃথক রঙের শেম ব্যবহার করি


1
ধন্যবাদ! এটি আরও ভাল দেখাচ্ছে!
ভিচুহা

4
পাবোর মতোই অন্য একটি মন্তব্যে বলেছিলেন, শেষে আপনার .vim এক্সটেনশন সহ আপনার রঙের স্কীম ফাইলটির নাম মাইকোলারশেম.ভিম এর মতো প্রয়োজন হতে পারে।
ডেভিড উইনিস্কি

ধন্যবাদ! গৌণ নিট: আমার মনে হয় আপনি দুর্ঘটনাক্রমে সমস্ত "guibg" কে লাল করে তুলেছেন। আপনার কী দুটি রঙের ইচ্ছা ছিল - একটি ডিফটেক্সটের জন্য এবং একটি বাকীটির জন্য?
কপিল আর্য

6
সংখ্যা ব্যবহার করার সময় কেন (ctermbg = 17) রঙগুলি কাজ করে না, তবে শব্দগুলি ব্যবহার করার সময় (ctermbg = নীল) - এটি কাজ করে? .. সমাধান: টার্মিনালটিতে কেবল 8 টি রঙ রয়েছে 1-7
রিকি লেভি

3
আইটিআরএম 2 ব্যবহার করে ম্যাকওএস। আমি যা করলাম, তা পেয়েছি না কেন: রঙিন স্কিম '~ / .vim / color / mycolorscheme' খুঁজে পাচ্ছি না ~ / .vimrc এর "if & diff" বিবৃতিটির মধ্যে সরাসরি রঙের কোডগুলি অনুলিপি করে কৌতুকটি করেছিল।
টনি বারগানস্কি


22

আমি খুঁজে পেলাম সবচেয়ে সহজ উপায় হ'ল এই ওয়ান-লাইনারটি আমার ~ / .vimrc ফাইলটিতে আটকানো:

" Fix the difficult-to-read default setting for diff text highlighting.  The
" bang (!) is required since we are overwriting the DiffText setting. The highlighting
" for "Todo" also looks nice (yellow) if you don't like the "MatchParen" colors.
highlight! link DiffText MatchParen

3
দুর্দান্ত সমাধান! আমি এর Todoপরিবর্তে বেছে নিয়েছি MatchParenকারণ এটি আরও বেশি দাঁড়িয়ে।
মিহাই ক্যাপোটা

18

যদি আপনি অপঠনযোগ্য রঙের স্কিমগুলির মুখোমুখি হন (কেবল কুশ্রী নয়, তবে গোলাপী ব্যাকগ্রাউন্ডে সাদা পাঠ্যের মতো অপঠনযোগ্য), 256 রঙের পরিবর্তে 16 টি রঙ ব্যবহার করা একটি সহজ ফিক্স। তারপরে আপনাকে রঙের স্কিমগুলির সাথে ঝামেলা করতে হবে না।

কারণটি হ'ল ডিফল্ট ভিমডিফ কালার স্কিমটি DiffChange bg"লাইটমেজেন্টা" হিসাবে নির্ধারিত হয়, যা 256 রঙের মধ্যে খুব হালকা গোলাপী হিসাবে ম্যাপ হয়। এটি সাদা পাঠ্য সহ অপঠনযোগ্য। 16 টি বর্ণের সাথে, "লাইটমেজেন্টা" একটি সাহসী ম্যাজেন্টায় ম্যাপ করা হয়, যা সাদা পাঠ্যটিতে আরও ভাল প্রদর্শিত হয়।

আপনি এরকম কিছু করে একটি দ্রুত পরীক্ষা দিতে পারেন:

vimdiff <file1> <file2>
:set t_Co?    " print current setting (256 by default)
:highlight    " print highlighting scheme
:set t_Co=16  " set to 16 colors
:highlight    " print highlighting scheme

256 রঙের স্ক্রিনশট এখানে চিত্র বর্ণনা লিখুন

16 রঙের স্ক্রিনশট এখানে চিত্র বর্ণনা লিখুন

আপনি দেখতে পাচ্ছেন যে, 16 টি রঙ বর্ণ স্কিম পরিবর্তন না করেই আরও বেশি পঠনযোগ্য।

এই স্থায়ী করতে, আপনি যোগ করতে পারেন set t_Co=16আপনার.vimrc


2
এই টিপটির জন্য অনেক ধন্যবাদ, যদিও আমার ক্ষেত্রে এটি অন্যভাবে ছিল। t_Coএটি 8 এ সেট করা হয়েছিল, এটি set t_Co=256পাঠযোগ্যতার উন্নত করে বাড়িয়েছে ।
ওলাফ ডিয়েটশে

11

মলোকাই: মলোকই রঙের স্কিম গিথুবৰ গিথুব রঙের স্কিম দুটো থিম গিথুব ও মলোকই সমান সুন্দৰ।

curl -fLo ~/.vim/colors/molokai.vim --create-dirs https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim
curl -fLo ~/.vim/colors/github.vim --create-dirs https://raw.githubusercontent.com/endel/vim-github-colorscheme/master/colors/github.vim

নীচের কোডটি আপনার ~ / .vimrc এ রাখুন, আপনি গিথুব বা মলোকেই বেছে নিতে পারেন (একটি লাইনের সাথে "একটি মন্তব্য"):

if &diff
"   colorscheme github
    colorscheme molokai
endif

এই পুরানো সমস্যার আমার নতুন প্রিয় সমাধান!
স্টেলেডোগ

10

যে ব্যক্তিরা খুব চমৎকার সোলারাইজড থিম ব্যবহার করেন তাদের জন্য একটি বিকল্প রয়েছে যা ডিফ মোডের জন্য উচ্চ দৃশ্যমানতা চালু করে:

" ~/vim.rc
" Set high visibility for diff mode
let g:solarized_diffmode="high"

"স্বাভাবিক" এখানে চিত্র বর্ণনা লিখুন

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

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


1
এই পার্থক্যের স্ক্রিনশট আপনার হয়ে উঠবে না?
ভিক্টর জামামানিয়ান

7

আমার বর্তমান কালারশিমে ভিমডিফের জন্য কিছুটা সঠিকভাবে প্রদর্শন করা যায় না, কারণ। উদাহরণস্বরূপ কিছু বৈসাদৃশ্য একই এফজি / বিজি রঙের সাথে দেখানো হয়েছে

প্রকৃতপক্ষে, আমি খুঁজে পেয়েছি যে একই ফগ / বিজি রঙের মূল অপরাধী কোড সিনট্যাক্স হাইলাইটিং এবং ডিফ কালারচেমের মধ্যে বিরোধের কারণ। আপনি ভিন্ন বর্ণের রঙ পরিবর্তন করার চেষ্টা করতে পারেন, তবে আপনি যখন বিভিন্ন ফাইলের প্রকারগুলি (বিভিন্ন কোড বাক্য সিনট্যাক্স হাইলাইট করে) খোলেন তখন এটি হোথ-এ-মোলের খেলা হতে পারে।

একটি নিশ্চিত সমাধান হ'ল ভিমডিফের সিনট্যাক্স হাইলাইটিং অক্ষম করা। আপনি হয় টাইপ করতে পারেন:

:syntax off

বা আপনি যদি প্রতি বার স্বয়ংক্রিয়ভাবে এটি করতে চান তবে আপনার এর শেষে এটি যুক্ত করুন ~/.vimrc:

if &diff
    syntax off
endif

6

আর একটি পদ্ধতি হল সেই রঙের স্কিমটি ঠিক করা।

যতদূর আমি জানি, ডিফফিংয়ের সাথে সাধারণত চারটি হাইলাইট গ্রুপ থাকে: ডিফএড, ডিফ চ্যাঞ্জ, ডিফডিলেট এবং ডিফটেক্সট। আপনি যদি সিনট্যাক্স নিয়ে মাথা ঘামাতে বা আপনার পছন্দ অনুযায়ী রঙগুলি টুইট করতে চান না, আপনি সম্ভবত নিজের ডিফল্ট রঙের স্কিমটিকে অন্য নামে copy / .vim / রংগুলিতে অনুলিপি করতে পারেন (ডিরেক্টরিটি এটি উপস্থিত না থাকলে তৈরি করুন) এবং অনুলিপিটি সম্পর্কিতটিকে সংযুক্ত করুন: হাই বিকল্পগুলি আপনার বিকল্প রঙ পরিকল্পনা থেকে আপনার নতুন কাস্টম রঙের স্কিমের শেষ অবধি, এতে thereinচ্ছিকভাবে অন্য কোনও সম্পর্কিত সম্পর্কিত বিবৃতি মন্তব্য করতে পারে।

এবং যদি ফলাফলটি একটি সুস্পষ্ট উন্নতি হয় তবে আপনার পরিবর্তনগুলির সাথে আপনার রঙের স্কিম রক্ষণাবেক্ষণকারীকে একটি ইমেল প্রেরণ করুন এবং তাকে সমস্যাটি দেখার জন্য বলুন। আপনার আগ্রহের জন্য তিনি আপনাকে ধন্যবাদ দেবেন এবং অন্য ব্যবহারকারীরাও উপকৃত হবেন যাতে তিনি তার রঙিন স্কিমটি ঠিক করে দেবেন এমন একটি ভাল সুযোগ রয়েছে ..


ডিএমএল বর্ণমালা কীভাবে অন্ধকার পটভূমিতে প্রদর্শিত হয় সে সম্পর্কে ভিম বিকাশকারীরা অসংখ্য অভিযোগ এবং পরামর্শ পেয়েছেন, তবে দুঃখের বিষয় এটি এখনও ঠিক করা হয়েছে।
স্টিফান Lasiewski

6

/etc/vim/vimrcবা ~/.vimrc: যদি সম্পাদনা ক্ষেত্রের মধ্যে একটি অন্ধকার পটভূমি ব্যবহার করা হয় এবং সিনট্যাক্স হাইলাইটও করা হয় তবে এই বিকল্পটি চালু করুনset background=dark


3

আমি যখন ভিআইএমডিফ ব্যবহার করি তখন নিম্নলিখিতটি ব্যবহার করি:

au BufEnter,BufNew * if &diff | syntax off | else | syntax on | endif

অন্যের বিবৃতি সহ অংশটি গুরুত্বপূর্ণ, কারণ আপনি আলাদা করার পরে আপনার পূর্ববর্তী কনফিগারেশনে ফিরে যাবেন। সুতরাং আপনি প্রতিস্থাপন করতে পারেন syntax offএবং syntax onসম্পর্কিত colorschemeকমান্ড সহ। এই স্বতঃসিএমডি হ'ল একটি সেটিং পরিবর্তন করে এবং ভিমডিফ ছাড়ার সময় এটিকে ফিরিয়ে দেয় (আমি Gdiffসুনির্দিষ্টভাবে ব্যবহার করি )।


3

@ ডিন এবং আরও কিছু উত্তর এখানে প্রসারিত করতে এটিতে আপনার যুক্ত করুন .vimrc:

if &diff
  " colorscheme evening
  highlight DiffAdd    cterm=bold ctermfg=10 ctermbg=17 gui=none guifg=bg guibg=Red
  highlight DiffDelete cterm=bold ctermfg=10 ctermbg=17 gui=none guifg=bg guibg=Red
  highlight DiffChange cterm=bold ctermfg=10 ctermbg=17 gui=none guifg=bg guibg=Red
  highlight DiffText   cterm=bold ctermfg=10 ctermbg=88 gui=none guifg=bg guibg=Red
endif
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.