2009-11-19 6 views
835

मुझे कई .vimrc फाइलों में दिखाई देता है, और मुझे आश्चर्य है कि इसका क्या अर्थ है? इसका क्या उपयोग है? उद्देश्य और उपयोग का एक सामान्य अवलोकन बहुत अच्छा होगा।एक .vimrc फ़ाइल में <leader> क्या है?

+4

मुझे एहसास हो रहा है कि मुझे लगता है कि मुख्य समझ यह है कि अपने कीबोर्ड शॉर्टकट में '' का उपयोग करके आप प्रभावी ढंग से नामस्थान बना रहे हैं ताकि आपके कस्टम शॉर्टकट अंतर्निहित विम व्यवहार पर कदम न उठाएं।अधिक के लिए नीचे @Pete Schlette का जवाब देखें। – User

उत्तर

750

<Leader> कुंजी डिफ़ॉल्ट रूप से \ पर मैप किया गया है। तो यदि आपके पास <Leader>t का नक्शा है, तो आप इसे \ + टी के साथ डिफ़ॉल्ट रूप से निष्पादित कर सकते हैं। और अधिक विस्तार या के लिए यह फिर से बताए mapleader चर का उपयोग कर, देख

: मदद नेता

 
To define a mapping which uses the "mapleader" variable, the special string 
"<Leader>" can be used. It is replaced with the string value of "mapleader". 
If "mapleader" is not set or empty, a backslash is used instead. 
Example: 
    :map <Leader>A oanother line <Esc> 
Works like: 
    :map \A oanother line <Esc> 
But after: 
    :let mapleader = "," 
It works like: 
    :map ,A oanother line <Esc> 

Note that the value of "mapleader" is used at the moment the mapping is 
defined. Changing "mapleader" after that has no effect for already defined 
mappings. 


+32

',' में परिवर्तन एक अच्छा है। '\\' से पहुंचने के लिए बहुत आसान है, और जो भी वैसे भी ',' का उपयोग करता है? –

+0

सहायता के लिए धन्यवाद, यह निश्चित रूप से मुझे सही दिशा में इंगित करता है। –

+21

@Gabe Moothart। : एच, आपको "नवीनतम दिशा, गिनती] समय में नवीनतम एफ, टी, एफ या टी दोहराएं।" यह काफी सुविधाजनक है। –

98

"लीडर कुंजी" कमांड करने के लिए कुंजी के अनुक्रमों का उपयोग करके वीआईएम के शॉर्टकट की शक्ति को विस्तारित करने का एक तरीका है। डिफ़ॉल्ट लीडर कुंजी बैकस्लैश है। इसलिए, यदि आपके पास < लीडर> क्यू का नक्शा है, तो आप \ Q टाइप करके उस क्रिया को निष्पादित कर सकते हैं।

+2

'\ Q' एक ही समय में? या पहले इसे \ 'रिलीज करें और फिर' क्यू' –

+3

@ अर्नोल्डरोआ जब भी vim कमांड सूचीबद्ध होते हैं, तो वाक्यविन्यास 'ggdG' का अर्थ है कि उन चार कुंजियों को अनुक्रमिक रूप से दबाएं। ' 'जैसे वाक्यविन्यास का अर्थ CTRL + w दबाकर है, इसके बाद CTRL + j। – gobernador

6

मेरे सिस्टम में इसकी \ कुंजी है। इसका उपयोग कमांड के लिए किया जाता है ताकि आप इसे अन्य वर्णों के साथ जोड़ सकें।

189

ध्यान रखें कि आपका <leader> कुंजी आपके पास केवल 1000ms (डिफ़ॉल्ट रूप से) को दबाएँ जब आप ऐसा हो इसके बाद कमांड दर्ज करें।

यह बढ़ाया गया है क्योंकि कोई दृश्य प्रतिक्रिया (डिफ़ॉल्ट रूप से) है कि आपने अपनी <leader> कुंजी दबा दी है और vim कमांड का इंतजार कर रहा है; और इसलिए इस बार बाहर होने के बारे में जानने का कोई भी दृश्य तरीका नहीं है।

आप अपने vimrc को set showcmd जोड़ते हैं तो आप अपने <leader> कुंजी देखेंगे (कर्सर स्थान के बाईं ओर) vim के नीचे दाहिने हाथ कोने में दिखाई देते हैं और शायद अधिक महत्वपूर्ण बात आप इसे जब समय गायब हो जाते हैं देखेंगे बाहर होता है।

टाइमआउट की लंबाई भी आपके vimrc में सेट की जा सकती है, अधिक जानकारी के लिए :help timeoutlen देखें।

+4

«: set showcmd» वर्तमान कमांड दिखाता है इसलिए लीडर कुंजी सक्रिय है। – greg

+7

'set showcmd' के लिए धन्यवाद! मुझे वास्तव में याद आया कि emacs – Steen

+1

'set showcmd' के लिए धन्यवाद। यह मेरे शुरुआती स्तर पर मेरे लिए उपयोगी है। –

51

विम की <leader> कुंजी उन आदेशों के लिए नामस्थान बनाने का एक तरीका है जिन्हें आप परिभाषित करना चाहते हैं। विम पहले से ही Ctrl+(some key) के अधिकांश कुंजियों और संयोजनों को मानचित्रित करता है, इसलिए <leader>(some key) वह जगह है जहां आप (या प्लगइन्स) कस्टम व्यवहार जोड़ सकते हैं।

उदाहरण के लिए, यदि आप खुद को अक्सर 3 शब्दों और 7 अक्षरों को हटाते हुए पाते हैं, तो आपको nmap <leader>d 3dw7x के माध्यम से कमांड को मैप करना सुविधाजनक हो सकता है ताकि डी के बाद नेता कुंजी दबाकर 3 शब्द और 7 वर्ण हटा दिए जाएंगे। चूंकि यह उपसर्ग के रूप में नेता कुंजी का उपयोग करता है, इसलिए आप (अपेक्षाकृत) आश्वस्त हो सकते हैं कि आप किसी भी पूर्व-मौजूदा व्यवहार पर stomping नहीं कर रहे हैं।

<leader> के लिए डिफ़ॉल्ट कुंजी \ है, लेकिन आप एक और प्रमुख (इस मामले में ,) करने के लिए इसे पुन: मैप करने के लिए आदेश :let mapleader = "," उपयोग कर सकते हैं।

Usevim's page on the leader key में अधिक जानकारी है।

संबंधित मुद्दे