विम में, ऐसी कौन सी सेटिंग्स / कमांड हैं जो एक उपसर्ग से शुरू होती हैं (b :, g :)?


26

मैंने इस प्लगइन को Vundle के साथ स्थापित किया और देखा कि इसकी कुछ सेटिंग्स हैं (README उन्हें चर कहते हैं):

b:javascript_fold

तथा

g:javascript_conceal

README का कहना है कि मैं, "उन्हें .vimrcअपनी सुविधाओं को सक्षम / अक्षम करने के लिए उन्हें अपने साथ जोड़ सकता हूं ।" लेकिन मुझे यकीन नहीं है कि उन्हें कैसे सेट किया जाए :। ये चर setया तो के माध्यम से उपलब्ध नहीं हैं echo, और न ही वे कमांड या फ़ंक्शन हैं। मैं इन्हें कैसे सेट / निरीक्षण कर सकता हूं?

जवाबों:


48

ये आंतरिक चर हैं।

आप उन्हें :letकमांड के साथ बनाते और संशोधित करते हैं :

:let g:var_name = 1

तुम उन्हें नष्ट कर दो :unlet

आप उनके साथ निरीक्षण करें :echo

उपसर्ग चर के दायरे को दर्शाता है; से :help internal-variables:

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.

उस तरह के वैरिएबल को अपने साथ जोड़ना इस तरह है ~/.vimrc:

let g:var_name = 1

आमतौर पर, केवल वैश्विक वैरिएबल को आपके साथ जोड़ा जाता है ~/.vimrc, बफर-लोकल वैरिएबल का उपयोग फिल्टाइप प्लगइन्स में किया जाना है।


2
पूर्णता के लिए: कोई उपसर्ग के साथ: एक समारोह में: एक समारोह के लिए स्थानीय; अन्यथा: वैश्विक
टॉम हेल

11

कॉन्फ़िगरेशन चर विकल्प नहीं हैं, वे केवल प्लगइन्स के लिए "अनुकरण" करते हैं। इसलिए, आप उपयोग नहीं करते हैं :set, लेकिन :let(और :echoउनके वर्तमान मूल्य को सूचीबद्ध करने के लिए)।

वेरिएबल के सामने स्थित सर्जन इसके दायरे को निर्धारित करता है। g:वैश्विक अर्थ; आमतौर पर प्लगइन लोड होने से पहले सेट करने की आवश्यकता होती है , अर्थात रखकर

let g:javascript_conceal = 1

आपके ~/.vimrc(और विम को पुनः आरंभ करने में)।

जैसा कि कुछ विन्यास केवल कुछ फिल्टाइपों पर लागू होता है , ये b:उपसर्ग का उपयोग करते हैं । उन्हें सेट ~/.vimrcकरना केवल उन्हें पहले खोले गए बफ़र पर लागू करना होगा, जो कि आप नहीं चाहते हैं। इसके बजाय, आपको फ़िलेटाइप डिटेक्शन मैकेनिज़्म में हुक करने की आवश्यकता है ।

यदि आप केवल कुछ फ़िल्टरों के लिए एक कॉन्फिगर विकल्प को सक्षम करना चाहते हैं, तो :let b:var = valueइसके बजाय उपयोग करें , और संबंधित कमांड को इसमें डालें ~/.vim/after/ftplugin/{filetype}.vim, जहाँ {filetype}वास्तविक फ़िलाटाइप (जैसे javascript) है। (इसके लिए आपके पास आवश्यक है कि आफ्टर डाइरेक्टरी :filetype plugin onका उपयोग आपको किसी भी डिफ़ॉल्ट फिल्टाइप सेटिंग को ओवरराइड करने की अनुमति देता है ।)$VIMRUNTIME/ftplugin/{filetype}.vim

वैकल्पिक रूप से, आप :autocmd FileType {filetype} setlocal option=valueअपने में एक सीधे परिभाषित कर सकते हैं ~/.vimrc, लेकिन कई अनुकूलन होने के बाद यह आपके लिए बेकार हो जाता है।

autocmd Filetype javascript let b:javascript_fold = 1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.