সংশ্লেষ হাইলাইট কিভাবে সংক্ষেপে কাজ করে:
ইন syntax/<filetype>.vim
সিনট্যাক্স নিয়ম সংজ্ঞায়িত করা হয় :syntax
কমান্ড। এই কমান্ডটি ভাল, সিনট্যাক্সকে সংজ্ঞায়িত করে। এটি বলে "যদি পাঠ্যটি এই নিয়মিত প্রকাশের সাথে মেলে তবে এটি একটি স্ট্রিং" এবং আরও অনেক কিছু। এটি করতে, এটি একটি হাইলাইট গোষ্ঠী নির্ধারণ করে । এটি রঙ হিসাবে যেমন কিছু বলে না ।
:highlight
"এই রঙগুলি দিয়ে এই গোষ্ঠীটি হাইলাইট করুন" বলে। এটি রঙিন স্কিমে সম্পন্ন হয়েছে , সিনট্যাক্স ফাইল নয়। ডিফল্ট হাইলাইট দলের গুচ্ছ আছে ( String
, Function
, Special
, এবং তাই ঘোষণা) সমস্ত রঙ স্কিম সংজ্ঞায়িত উচিত যা।
আপনি যদিও এই ডিফল্ট গোষ্ঠীগুলির মধ্যে কোনওভাবেই সীমাবদ্ধ নন এবং আপনি যতগুলি গোষ্ঠী তৈরি করতে পারেন (তবে ডিফল্ট সিনট্যাক্স ফাইল সাধারণত না)।
indent/<filetype>.vim
ফাইল স্বয়ংক্রিয় খাঁজ নিয়ন্ত্রণ করে। উদাহরণস্বরূপ রুবির ক্ষেত্রে এটি বলেছে "পরের রেখাটি def
ইনডেন্টেশন স্তর বৃদ্ধি করা উচিত" এবং "লাইন পরে end
ইনডেন্টেশন এক স্তর হ্রাস করা উচিত"। এটি রঙ বা সিনট্যাক্স হাইলাইট করে কিছুই করে না।
কেন বিভিন্ন প্রোগ্রামিং ভাষা হাইলাইট করা বিভিন্ন হয়? কিছুটা ব্যক্তিগত নন্দনতত্ত্ব এবং যারাই এটি লিখেছিল তার মতামতের কারণে। উদাহরণস্বরূপ রুবিতে Type
হাইলাইট গ্রুপটি শ্রেণীর নামের জন্য ব্যবহৃত হয়। তবে এটি Function
বা অন্য কিছু হতে পারে। এটা কেন Type
? সম্ভবত কারণ লেখক ভেবেছিলেন যে এটি তার রঙিন স্কিমে আরও ভাল দেখাচ্ছে।
তবে আরও বড় কথা, ভাষাগুলির বিভিন্ন শব্দার্থবিজ্ঞান এবং সংবেদনশীলতা রয়েছে। রুবিতে self
একটি বিশেষ কীওয়ার্ড। আপনি করতে পারবেন না self = "foo"
বা def self()
। এগুলি ত্রুটি। পাইথনের ক্ষেত্রে এটি হয় না । এটি কোনও বিশেষ বৈশিষ্ট্য ছাড়াই কেবল অন্য পরিবর্তনশীল। এরকম:
x = Object()
x.foo()
পাইথন সত্যই এটির "অনুবাদ" করেছেন:
Object.foo(x)
নামটি self
কেবল কনভেনশন (প্রায় সর্বজনীন গৃহীত) তবে আপনি নিজের পছন্দ মতো যেকোন নাম রাখতে পারেন; def x(this):
বা def x(xxx):
সমানভাবে বৈধ। আপনি নিজের নামটি self
যে কোনও জায়গায় ব্যবহার করতে পারেন; self = 'foo'
এবং def self():
পুরোপুরি ঠিক আছে।
আমি যুক্তি দিয়ে বলব যে এটি self
হাইলাইট করা উচিত নয়, কারণ এটি কোনও বিশেষ কীওয়ার্ড নয়, বা পূর্বনির্ধারিত পরিবর্তনশীল (যেমন str
)ও নয়। self
সিনট্যাক্স ফাইলে শব্দের কোনও চিহ্ন নেই , সুতরাং দেখে মনে হচ্ছে এটির লেখক একই যুক্তি করেছেন :-)
আপনি যদি self
হাইলাইট করতে চান তবে আপনাকে এর জন্য একটি সিনট্যাক্স বিধি তৈরি করতে হবে:
:syn keyword pythonBuiltin self
pythonBuiltin
গ্রুপের নাম ইতিমধ্যে ডিফল্ট সিনট্যাক্স ফাইলে সংজ্ঞায়িত করা হয় এবং এর সাথে লিঙ্কযুক্ত নেই Function
হাইলাইট গ্রুপ। একটি নতুন হাইলাইট গ্রুপ ব্যবহার করতে, এর মতো কিছু ব্যবহার করুন:
:syn keyword pythonSelf self
:highlight def link pythonSelf Special
এই পরিবর্তনগুলি করতে আপনি কেবল আপনার ভিএমআরসি ফাইলটিতে আটকে রাখতে পারবেন না। সিনট্যাক্স ফাইল এটিকে ওভাররাইড করবে। পরিবর্তে আপনার এটি সিনট্যাক্স ফাইল লোডের পরে চালানো দরকার যা আপনি দুটি উপায়ে করতে পারেন:
একটি FileType
স্বতঃসিএমডি ব্যবহার করুন :
augroup python
autocmd!
autocmd FileType python
\ syn keyword pythonSelf self
\ | highlight def link pythonSelf Special
augroup end
ব্যবহার করুন after-directory
, ~/.vim/after/syntax/python.vim
:
syn keyword pythonSelf self
highlight def link pythonSelf Special
উভয় পদ্ধতি কার্যকরভাবে একই। আপনি যেটিকে পছন্দ করুন ব্যবহার করুন।