উত্তর:
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