.Vimrc फ़ाइल में <नेता> क्या है?


1068

मैं <leader>कई .vimrcफ़ाइलों में देखता हूं , और मैं सोच रहा हूं कि इसका क्या मतलब है?

इसका क्या उपयोग है?

बस उद्देश्य और उपयोग का एक सामान्य अवलोकन बहुत अच्छा होगा।


10
मुझे पता चल रहा है कि मुझे लगता है कि मुख्य समझ यह है कि <leader>अपने कीबोर्ड शॉर्टकट का उपयोग करके आप प्रभावी रूप से एक नाम स्थान बना रहे हैं ताकि आपके कस्टम शॉर्टकट बिल्ट-इन विम व्यवहार पर न चलें। अधिक देखने के लिए @ पेइट स्लेट का उत्तर नीचे देखें।
यूजर

3
यदि आप जांचना चाहते हैं कि आपका क्या <leader>है, उपयोग करें :echo mapleaderया :let mapleader। यदि अपरिभाषित है, तो यह डिफ़ॉल्ट का उपयोग करेगा, जो कि एक बैकस्लैश है"\"
वारबैंक

जवाबों:


984

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

: नेता की मदद करें

मैपिंग को परिभाषित करने के लिए जो "मैपलीडर" चर का उपयोग करता है, विशेष स्ट्रिंग
"<लीडर>" का उपयोग किया जा सकता है। इसे "मैपलीडर" के स्ट्रिंग मान से बदल दिया जाता है।
यदि "मैपलीडर" सेट या खाली नहीं है, तो इसके बजाय एक बैकस्लैश का उपयोग किया जाता है।  
उदाहरण:
    : नक्शा <लीडर> एक ऊतर लाइन <Esc>
जैसे काम करता है:
    : map \ A oanother line <Esc>
लेकिन बाद में:
    : = ""
यह इस तरह काम करता है:
    : नक्शा, एक ऊँट की पंक्ति <Esc>

ध्यान दें कि मैपिंग के समय "मैपलीडर" के मूल्य का उपयोग किया जाता है
परिभाषित। उसके बाद "मैपलीडर" बदलना पहले से ही परिभाषित के लिए कोई प्रभाव नहीं है
मैपिंग।



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

41
@ गबे मुथरत। : h, आपको "नवीनतम f, t, F या T को विपरीत दिशा में [बार] बार दोहराता है।" यह काफी सुविधाजनक है।
मैक्सिम किम

10
यहाँ भी एक अच्छा राइटअप
Sukotto

66
मैं (' ')एक लीडर की के रूप में जगह पसंद कर रहा हूं क्योंकि मैं इसे हाथ से मार सकता हूं, जिससे फॉलो-अप कुंजी (चाहे वह कीबोर्ड के बाईं या दाईं ओर हो) बाद में ट्रिगर करने के लिए समान रूप से तेज हो। एक लीडर कुंजी होने के कारण जो कि कीबोर्ड के केवल एक तरफ होता है, कीबोर्ड के एक ही तरफ की की-फॉलो करने की कुंजी को थोड़ा अधिक बोझिल महसूस करता है। नित्पिकी, मुझे पता है। :)
jefflunt

3
@ जैफ्लंट मेरा दाहिना अंगूठा पहले ही सप्ताह है क्योंकि मैंने इसे टाइपिंग के लिए कभी इस्तेमाल नहीं किया है। इसलिए मैं केवल रिक्त स्थान मारने के लिए बाएं अंगूठे का उपयोग करता हूं। मुझे लगता है कि मेरे लिए एक ही लाभ प्रदान नहीं करता है।
off99555

263

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

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

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

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


11
«: Showcmd सेट करें» वर्तमान कमांड दिखाता है इसलिए नेता उस समय सक्रिय होता है जब वह सक्रिय होता है।
ग्रेग

4
प्रतिक्रिया की कमी के लिए, जबकि डिफ़ॉल्ट रूप से कोई दृश्य प्रतिक्रिया नहीं होती है, ऐसा प्रतीत होता है कि vim सिस्टम घंटी की आवाज़ करेगा यदि यह आपके प्रेस करने के बाद 1000ms में एक कमांड प्राप्त नहीं करता है <leader>
बेली पार्कर

113

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


4
\Qएक ही समय में? या पहले ` release it and then Q`
अर्नोल्ड रोआ

9
@AnnoldRoa जब भी vim कमांड को सूचीबद्ध किया जाता है, वाक्यविन्यास ggdG अर्थ उन चार कुंजी को क्रमिक रूप से दबाना है। <C-w><C-j>CTRL + w को दबाने के लिए एक सिंटैक्स का मतलब है, उसके बाद CTRL + j।
gobernador

91

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

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

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

नेता कुंजी पर यूटविम के पेज पर अधिक जानकारी है।


8

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

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