जवाबों:
let
एक वैरिएबल के लिए एक मान प्रदान करता है, और set
विम के आंतरिक विकल्पों में से एक को एक मान प्रदान करता है।
उदाहरण के लिए, आप उपयोग करेंगे
:let mystring='Hello!'
एक नया चर घोषित करने के लिए, लेकिन आप उपयोग करेंगे
:set tabstop=4
या
:set expandtab
विम के विकल्पों में से एक सेट करने के लिए।
यह भी देखें: :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
। आपके द्वारा पूछे गए उपसर्ग गुंजाइश प्रदान करता है। Doorknob का उत्तर स्कूपिंग को बहुत अच्छी तरह से कवर करता है।
आप :let @a="Some text"
रजिस्टर ए की सामग्री को बदल सकते हैं Some text
, जिसमें आप बाद में "ap
उदाहरण के लिए पेस्ट कर सकते हैं ।
आप :let $PATH = $PATH . ":/home/me/bin"
अपनी स्वयं की बिन निर्देशिका को PATH
पर्यावरण चर के साथ जोड़ सकते हैं , जो विम द्वारा निष्पादित किसी भी बाहरी आदेशों को पारित किया जाता है (यह किसी भी पर्यावरण चर के लिए काम करता है)।
हालाँकि let
इसमें कुछ बहुत शक्तिशाली क्षमताएं हैं (जैसे :let $MYFILE = @%
कि वर्तमान बफर के फ़ाइल नाम के लिए एक पर्यावरण चर सेट करना), यह नहीं जानता कि सेटिंग एक बूलियन है, इसलिए यह अच्छा एक्सेस या त्रुटि जाँच की पेशकश नहीं :set
करता है।
अंत में, यह नौकरी के लिए सबसे अच्छा उपकरण का उपयोग करने के बारे में है। यदि आप केवल एक विकल्प को संशोधित करना चाहते हैं, :set
तो आपका उपकरण है। यदि आप किसी अभिव्यक्ति के परिणाम के आधार पर रजिस्टरों, विकल्पों, चर के बीच जानकारी को स्थानांतरित करना चाहते हैं या आधार बनाना चाहते हैं, तो :let
यह आपका उपकरण है।
यद्यपि आपने स्पष्ट रूप से विम के बारे में पूछा है, ध्यान देने वाली एक और बात यह है कि :set
vi / Vim परिवारों में अधिक आम है, जहां :let
कम आम है (उदाहरण के लिए, nvi के पास let
कमांड नहीं है , और viemu रजिस्टर के माध्यम से पहुंच प्रदान नहीं करता है let
) ।
let
करके सेट कर सकते हैंlet &{option name}=value