কী করে: সেট ব্যাকগ্রাউন্ড = ডার্ক কি করে?


35

আমি color xxxআমার মধ্যে রাখিনি .vimrc। আমি প্রথম যখন আমার খুলি তখন আমি এটি দেখতে পাই .vimrc

:colorআমাকে defaultএখানে দেয় । কিছু আগে

তারপরে আমি টাইপ করি :color darcula। এবং এটি এটি পরিবর্তন।

:colorআমাকে darculaএখানে দেয় (প্রাকৃতিকভাবে) রঙচেম পরিবর্তন করুন

তারপরে আমি টাইপ করি :set background=dark। এবং এটি এটি পরিবর্তন।

:colorআমাকে defaultএখানে (আশ্চর্যরূপে) দেয়পটভূমি পরিবর্তন

সুতরাং আমার প্রশ্ন, ঠিক :set background=darkকি করে?

আমি চেষ্টা করেছিলাম :h backgroundএবং কোনও সহায়ক খুঁজে পেলাম না। আমি বুঝতে পারি যে এই কমান্ডটি ব্যাকগ্রাউন্ডটি আসলে পরিবর্তন করে না, কেবলমাত্র vim অনুসারে রঙ পরিবর্তন করবে। তবে আমি এখনও এই প্রশ্নটি জিজ্ঞাসা করতে চাই। কারণ আমি রঙটি পরে সত্যিই খুশি :color darculaএবং :set background=darkতাই আমি আশ্চর্য না করে কীভাবে আমার নিজের রঙিন স্কিমটি লিখতে হবে তা আমার set background=darkমধ্যে না রেখে .vimrc

আমি @ স্ট্যাটাক্সের কাছ থেকে পরামর্শ নিয়ে set background=darkআমার শেষ লাইনে রেখেছি darcula.vim। তারপরে color darculaআমাকে তৃতীয় স্ক্রিনশট দেয়। তবে আমি যখন এটি প্রথম লাইনে রেখেছি তখন color darculaআমাকে দ্বিতীয় স্ক্রিনশট দেয়। এছাড়াও set bg=darkতৃতীয় স্ক্রিনশটে ফিরে এটা পরিবর্তন।

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

যদি আমি ধারণা করি যা ঘটেছিল সত্য হয় তবে আমার প্রশ্নটি এখনও উত্তরহীন। আমি যখন set bg=darkহালকা রঙিন চামড়াটি লোড করেছি তার পরে আমি কীভাবে ভিএম পরিবর্তন করেছি ?

আমার সম্পূর্ণ ভিএম কনফিগারেশন https://github.com/MichaelMa2014/.vim এ উপলব্ধ



@ মুরু শুভেচ্ছা! আমার জিজ্ঞাসা করার আগে আমি এই প্রশ্নটি পড়েছি। এটি সেই পোস্টে উল্লিখিত হয়েছে :set bg=lightএবং :set bg=darkবিপরীত নয়, তবে তারা ঠিক কী তা ব্যাখ্যা করা হয়নি। এছাড়াও সেই পোস্টটি কেন আমি :set background=darkআমার এড়াতে চাই .vimrc
মাইকেল মা

উত্তর:


32

আপনি যখন কি ঘটবে :set background

যে মেকানিজমটি দ্বারা :set backgroundকাজ করে তা আসলে খুব সহজ, এবং এটি ডকুমেন্টেড (যদিও বিশেষভাবে পরিষ্কার নয়) :help 'background'

যখন 'ব্যাকগ্রাউন্ড' সেট করা হবে তখন ভিম নতুন মানের জন্য ডিফল্ট রঙের গোষ্ঠীগুলিকে সামঞ্জস্য করবে। সিনট্যাক্স হাইলাইট করার জন্য ব্যবহৃত রঙগুলি পরিবর্তিত হবে না। g: color_name
যখন কোনও রঙিন স্কিম লোড হয় ("g: color_name" ভেরিয়েবল সেট করা থাকে) 'ব্যাকগ্রাউন্ড' সেটিংস রঙিন স্কিমটিকে পুনরায় লোড করার কারণ ঘটায়। যদি রঙ স্কিমটি 'ব্যাকগ্রাউন্ড' এর মানের সাথে সামঞ্জস্য হয় তবে এটি কাজ করবে। তবে, যদি রঙ স্কিম নিজেই 'ব্যাকগ্রাউন্ড' সেট করে তবে এর প্রভাবটি পূর্বাবস্থায় ফিরে আসতে পারে।

সুতরাং 'background'বিকল্পটি পরিবর্তিত হওয়ার পরে যা ঘটেছিল তা হ'ল:

যদি কোনও রঙের স্কিম বর্তমানে লোড করা হয় না

ভিম ডিফল্ট রঙগুলি পুনরায় লোড করে, নতুন সেটিংয়ের জন্য উপযুক্ত বলে মনে করা হচ্ছে অগ্রভাগের রঙগুলি ব্যবহার করে 'background'

যদি কোনও রঙিন স্কিম বর্তমানে লোড হয়

ভিম রঙের স্কিমটি পুনরায় লোড করে। রঙের স্কিমটি লোড হয়ে গেলে রঙের স্কিমটি নতুন সেটিংয়ের জন্য উপযুক্ত রঙগুলি সেট করে 'background', বা রঙ স্কিমটি পুরানো মানটিকে পুনরায় সেট 'background' করে।

আপনি ইতিমধ্যে বর্ণিত হিসাবে, 'background'বিকল্পটি ব্যাকগ্রাউন্ড সেট করার উদ্দেশ্যে নয় , পরিবর্তে পটভূমিটি অন্ধকার বা হালকা কিনা ভিমকে অবহিত করার জন্য নয় ।

সুতরাং যদি রঙের স্কিমটি পুনরায় সেট হয় 'background', ভিম এটি বোঝায় যে রঙ স্কিমটি কেবল নতুন সেটিংটিকে সমর্থন করে না 'background'। যেহেতু ব্যবহারকারী নির্দেশ করেছেন যে তারা এ জাতীয় পটভূমি ব্যবহার করছেন তার অর্থ হ'ল বর্তমান রঙের স্কিমটি আর উপযুক্ত নয়, এবং তাই ভিম আনসেট করে g:colors_nameএবং তারপরে ডিফল্ট রঙগুলি আবার লোড করে।

আপনি যদি 'background'সেট হওয়ার পরে চালিত প্রকৃত কোডটি অন্বেষণ করতে চান তবে আপনি এখানে শুরু করতে পারেন

আপনার ইনস্টলেশনতে কি হচ্ছে

আপনার বর্ণিত বিজোড় আচরণ (আপনার প্রশ্নের প্রথম সংস্করণে) উপরে বর্ণিত ডকুমেন্টেশনে এই লাইনটি দ্বারা ব্যাখ্যা করা যেতে পারে:

যখন কোনও রঙের স্কিম লোড হয় ("g: color_name" ভেরিয়েবল সেট করা থাকে)

সমস্যাটি হ'ল আপনার colors/darcula.vimফাইলটি এই মানটি সেট করে না এবং তাই আপনি যখন আবেদন করেছিলেন তখন রঙগুলি পরিবর্তিত হয়ে গেলেও :color darcula, ভিম কোনও রঙ স্কিমটিকে বোঝা হিসাবে বিবেচনা করে না।

অতএব, আপনি যখন :set background=darkভিম কল করবেন তখন উপরের "যদি কোনও রঙের স্কিম বর্তমানে লোড হয় না" বিভাগে পদক্ষেপটি বহন করে এবং একটি অন্ধকার পটভূমির জন্য ডিফল্ট রঙ সেট করে। এটি কেন :colorতবে রিপোর্ট করে তা ব্যাখ্যা করে default

(নোট অবশ্য ডিফল্ট রং সেটিং করে না , যেমন আপনি আশা করতে পারে, সব রং যা পূর্বে সেট ছিল অপসারণ, এবং এই কারণেই আপনার দেখা ফলাফল দিয়ে শেষ, বরং রং প্রদর্শন করা হয় যে এর চেয়ে যখন আপনি প্রথমে ভিম শুরু করুন this এখানে এই বিষয়ে কিছু আলোচনা রয়েছে )

সংক্ষেপে, আপনার রঙিন স্কিমটি ভুল কনফিগার করা হয়েছে: :edit $VIMRUNTIME/colors/README.txtএ সম্পর্কে আরও বিশদের জন্য 'background'এবং রঙীন স্কিমগুলির মধ্যে মিথস্ক্রিয়া সম্পর্কে (বিশেষত নীচের অংশে) দেখুন ।


তোমাকে অনেক ধন্যবাদ! আপনি যখন বলবেন তখন আমি সম্পূর্ণরূপে অনুভূত বোধ করি "আপনি যেমনটি প্রত্যাশা করতে পারেন না, আগে সেট করা সমস্ত রঙ মুছে ফেলুন"। আমি অবশ্যই আলোচনা পড়তে যাব!
মাইকেল মা

4

এখানে থাকা দস্তাবেজের :h 'background' আপনার প্রয়োজনীয় সমস্ত তথ্য সরবরাহ করা উচিত:

"অন্ধকার" এ সেট করা হলে, ভিম একটি গা dark় পটভূমিতে ভাল দেখতে রঙগুলি ব্যবহার করার চেষ্টা করবে। "হালকা" এ সেট করা হলে, ভিম হালকা ব্যাকগ্রাউন্ডে ভাল দেখতে রঙিন ব্যবহার করার চেষ্টা করবে। অন্য কোনও মান অবৈধ।

আপনার কালারশেমটি রঙের 2 টি গ্রুপকে সংজ্ঞায়িত করে: হালকা ব্যাকগ্রাউন্ডে ব্যবহার করা এবং একটি অন্ধকার পটভূমিতে যা ব্যবহৃত হয়। backgroundবিকল্প তেজ যা আপনার colorscheme দ্বারা সংজ্ঞায়িত রঙের গ্রুপ ব্যবহার করা উচিত বলে দেবে।

এই বিকল্পটি সেট করা ব্যাকগ্রাউন্ডের রঙ পরিবর্তন করে না, এটি ভিমকে জানায় যে ব্যাকগ্রাউন্ডের রঙটি কেমন দেখাচ্ছে। পটভূমির রঙ পরিবর্তন করার জন্য, দেখুন :h :hi-normal

যখন 'ব্যাকগ্রাউন্ড' সেট করা হবে তখন ভিম নতুন মানের জন্য ডিফল্ট রঙের গোষ্ঠীগুলিকে সামঞ্জস্য করবে। সিনট্যাক্স হাইলাইট করার জন্য ব্যবহৃত রঙগুলি পরিবর্তিত হবে না।

এটি পূর্ববর্তী অনুচ্ছেদের ফলোআপ: এটি কালারচেম যা রঙগুলির গ্রুপগুলি সংজ্ঞায়িত করে এবং backgroundএই গ্রুপগুলির মধ্যে একটি নির্বাচন করে।

অবশেষে আপনি যদি নিজের set background=darkভি্মিআরসি না রেখে নিজের রঙের স্কিমটি লিখতে চান তবে মনে রাখবেন যে কালারশিমটি উইমস্ক্রিপ্টে কোনও প্রোগ্রাম ছাড়া আর কিছু নয়, সুতরাং আপনার রঙের চেমের কোডে যেমন কমান্ড ব্যবহার করতে আপনাকে কোনও কিছুই থামায় না যেমন যেমন জেলিবেইন বা শিক্ষানবিশ


1
ধন্যবাদ! আমি করা set background=darkমধ্যে darcula.vimএবং যখন আমি রাখা একই প্রভাব উত্পাদিত .vimrc। তবে আমি এখনও কৌতূহলী, কীভাবে ভিম "অন্ধকার ব্যাকগ্রাউন্ডে ভাল দেখাচ্ছে এমন রঙগুলি ব্যবহার করার চেষ্টা করেন"? কোথাও সংজ্ঞায়িত ম্যাপিং বা এর মতো কিছু রয়েছে?
মাইকেল মা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.