উত্তর:
letএকটি চলককে setএকটি মান নির্ধারণ করে এবং ভিমের অভ্যন্তরীণ বিকল্পগুলির মধ্যে একটিতে একটি মান নির্ধারণ করে।
উদাহরণস্বরূপ, আপনি ব্যবহার করবেন
:let mystring='Hello!'
একটি নতুন ভেরিয়েবল ঘোষণা করার জন্য, তবে আপনি ব্যবহার করবেন
:set tabstop=4
অথবা
:set expandtab
ভিমের একটি বিকল্প সেট করতে to
আরও দেখুন: :help let, :help set।
g:কেবল একটি গ্লোবাল ভেরিয়েবলের ইঙ্গিত দেয়। এর মধ্যে বেশ কয়েকটি "ভেরিয়েবল নেমস্পেস" রয়েছে - যা থেকে :help internal-variables:
(nothing) In a function: local to a function; otherwise: global
|buffer-variable| b: Local to the current buffer.
|window-variable| w: Local to the current window.
|tabpage-variable| t: Local to the current tab page.
|global-variable| g: Global.
|local-variable| l: Local to a function.
|script-variable| s: Local to a |:source|'ed Vim script.
|function-argument| a: Function argument (only inside a function).
|vim-variable| v: Global, predefined by Vim.
:setঅভ্যন্তরীণ বিকল্পগুলির জন্য ব্যবহৃত হয় এবং বিকল্পের ধরণের পরিচালনা করে। এটি বুলিয়ান বিকল্পগুলির বিপরীতকরণের মতো জিনিসগুলিকে মঞ্জুরি দেয় (উদাহরণস্বরূপ :set invpaste) তালিকা থেকে সেটিংস যোগ করা এবং মুছে ফেলা (যেমন :set dictionary-=/tmp/myfile)।
:letঅন্যদিকে, নিয়মিত ভেরিয়েবল, অপশন, রেজিস্ট্রার ইত্যাদিসহ ভিএমে পরিবর্তনযোগ্য জিনিসের আধিক্য অ্যাক্সেসের অনুমতি দেয় এবং সেট করা মান হ'ল এর মতো সাধারণ মানের পরিবর্তে কোনও অভিব্যক্তি মূল্যায়নের ফলাফল :set, যার অর্থ :letআপনাকে গণিত, স্ট্রিং ম্যানিপুলেশন এবং ফাংশনগুলিতে অ্যাক্সেস দেয়।
উদাহরণস্বরূপ, আপনি যা করতে পারেন :let &dictionary=/tmp/myfileবিকল্প সেট করতে 'dictionary'করতে /tmp/myfile(সুতরাং উপরে দেখানো একই বিকল্প পরিবর্তন :setউদাহরণ)
আপনি একটি বৈশ্বিক পরিবর্তনশীল এর সাথে সেট করতে পারেন :let g:myvar=42। আপনি যে উপসর্গ সম্পর্কে জিজ্ঞাসা করেছিলেন তা সুযোগ প্রদান করে। ডুরকনব এর উত্তরটি স্কোপিংটিকে খুব ভালভাবে কভার করে।
আপনি :let @a="Some text"একটি রেজিস্টার কন্টেন্ট অন্তর্ভুক্ত পরিবর্তন করতে পারেন Some text, যা আপনি "apউদাহরণস্বরূপ পরে পেস্ট করতে পারে ।
আপনি :let $PATH = $PATH . ":/home/me/bin"আপনার নিজের বিন ডিরেক্টরিটি PATHপরিবেশের ভেরিয়েবলের সাথে যুক্ত করতে পারেন , যা ভিম দ্বারা নির্বাহিত কোনও বাহ্যিক কমান্ডগুলিতে প্রেরণ করা হয় (এটি কোনও পরিবেশের পরিবর্তনশীলের জন্য কাজ করে)।
যদিও letকিছু বেশ শক্তিশালী ক্ষমতা রয়েছে ( :let $MYFILE = @%বর্তমান বাফারের ফাইলনামে পরিবেশের পরিবর্তনশীল সেট করতে চান ), এটি জানেন না যে একটি সেটিংসটি বুলিয়ান, সুতরাং এটি দুর্দান্ত অ্যাক্সেস বা ত্রুটিযুক্ত পরীক্ষা করার মতো প্রস্তাব দেয় না :set।
শেষ পর্যন্ত, এটি কাজের জন্য সেরা সরঞ্জামটি ব্যবহার করার বিষয়ে। আপনি যদি কেবল কোনও বিকল্প পরিবর্তন করতে চান তবে :setএটি আপনার সরঞ্জাম। আপনি যদি কোনও রেজিস্ট্রি, বিকল্পগুলি, ভেরিয়েবলগুলির মধ্যে তথ্য স্থানান্তর করতে চান বা কোনও অভিব্যক্তির ফলাফলের ভিত্তিতে আপনার মানকে ভিত্তি করে তুলতে চান তবে :letতা আপনার সরঞ্জাম।
যদিও আপনি ভিম সম্পর্কে স্পষ্টভাবে জিজ্ঞাসা করেছিলেন, অন্য একটি বিষয় লক্ষণীয় যা ভিআইভি :set/ ভিম পরিবারগুলিতে বেশি দেখা যায়, যেখানে :letখুব কম দেখা যায় (উদাহরণস্বরূপ, letএনভি-র কোনও কমান্ড নেই, এবং ভিউমু রেজিস্টারগুলির মাধ্যমে প্রবেশাধিকার সরবরাহ করে না let) ।
letকরে ভীমের অভ্যন্তরীণ বিকল্পগুলি সেট করতে পারেনlet &{option name}=value