:setकेवल विकल्पों के साथ काम करता है, और सेह के उत्तर कुछ अच्छे उपयोग के उदाहरण दिखाते हैं।
:letदूसरी ओर लगभग सब कुछ कर :setसकता है जो कर सकता है, और अधिक। यह एक मान प्रदान कर सकता है
- एक चर, उदाहरण के लिए
let vi = 'vim'
- एक विकल्प, उदाहरण के लिए
let &tw = 40
- एक रजिस्टर, उदा
let @a = $HOME . '/vimfiles'
- एक पर्यावरण चर, उदाहरण के लिए;
let $NOTHING = 'NOTHING'
एक और बड़ा अंतर यह है कि दाहिने हाथ की तरफ :letएक अभिव्यक्ति है , जिसका अर्थ है कि आप स्ट्रिंग कॉन्फैटिनेशन (जैसा कि ऊपर मेरे रजिस्टर उदाहरण में देखा गया है) और अंकगणितीय संचालन (जैसे let &tw = 40 + 60) कर सकते हैं। इसका मतलब यह भी है कि अगर यह एक तार है तो आपको मूल्य को उद्धृत करना होगा। :setदूसरी ओर मूल्य शब्दशः पढ़ता है।
:setविकल्पों में से इसका उपयोग करना आसान है , हालांकि :letइसमें से अधिकांश भी कर सकते हैं, यहाँ कुछ उदाहरणों का उपयोग करते हुए तुलना की गई है ("n / a" का अर्थ है इसे करने का कोई तरीका नहीं :let)
:verbose set बनाम n / a (सभी विकल्पों को सूचीबद्ध करने का एक और तरीका नहीं है)
:set tw=40बनाम :let &tw = 40(हाँ, आप उसी शॉर्टहैंड का letभी उपयोग कर सकते हैं )
:set wrap& बनाम एन / ए
:set nowrapबनाम :let &wrap = 0(बूलियन विकल्पों के लिए, 0 गलत है और 1 सच है)
:set wrap! बनाम :let &wrap = !&wrap
कुछ और उदाहरण
- एक विकल्प का मूल्य प्रिंट करें:
:set formatoptions?बनाम :echo &formatoptions( letमान प्रिंट नहीं करता है, इसके विपरीत set)
एक ही समय में कई विकल्पों को असाइन करना:
:set et sw=4 sts=4
बनाम
:let [&et, &sw, &sts] = [0, 4, 4]
वैश्विक विकल्प सेट करें: setglobal etबनामlet &g:et = 1
- स्थानीय विकल्प सेट करें:
setlocal etबनामlet &l:et = 1
देखें :h :setऔर :h :letअधिक जानकारी के लिए
tl; डॉ
:setकेवल विकल्पों के साथ काम करता है लेकिन वाक्यविन्यास बहुत सरल है। :letन केवल विकल्पों के साथ, बल्कि चर, रजिस्टर और पर्यावरण चर भी काम करता है। इसके विपरीत :set, दाहिने हाथ की ओर :letएक अभिव्यक्ति है।
:help setऔर:help letऔर मैनुअल पढ़ा है?