विम में कुंजियाँ कैसे मैप करें

Vima Mem Kunjiyam Kaise Maipa Karem



विम में, कुंजी मैपिंग किसी विशेष कार्य को करने के लिए किसी विशिष्ट कुंजी को कुंजी या कमांड का एक सेट निर्दिष्ट करने की एक प्रक्रिया है। उदाहरण के लिए, फ़ाइल में सभी पंक्तियों का चयन करने के लिए आप इसका उपयोग करते हैं जीजीवीजी कमांड, और इसे करने के लिए आपको चार कुंजियाँ दबानी होंगी। इसे केवल एक कीस्ट्रोक से करने के बारे में क्या ख्याल है? यहीं पर विम कुंजी मैपिंग काम आती है। की मैपिंग विम में अक्सर किए जाने वाले कई कार्यों को स्वचालित करने का एक तरीका है। और, आपने इसके बारे में अवश्य सुना होगा; यदि आप कोई कार्य दो बार से अधिक कर रहे हैं, तो उसे स्वचालित करें!

इस व्यापक गाइड में, मैं समझाऊंगा कि संचालन को स्वचालित करने के लिए विम में कुंजियों को कैसे मैप किया जाए। बेसिक की मैप बनाने से लेकर एडवांस्ड की मैपिंग तक, उन्हें स्थायी बनाने और हटाने की प्रक्रियाएँ।

वाक्य - विन्यास

विम में कुंजी को मैप करने के लिए, निम्नलिखित सिंटैक्स का उपयोग किया जाता है:







<मोड>मानचित्र <तर्क> <एलएचएस> <आरएचएस>



उपरोक्त वाक्यविन्यास में:



<मोड>मानचित्र एनएमएपी, आईमैप, वीमैप, एक्समैप, सीएमएपी, या ओमैप
<तर्क>* <मौन>, <बफर>, <स्क्रिप्ट>, <विशेष>, <एक्सपीआर> और <अद्वितीय>
<एलएचएस> बाईं ओर मैप की जाने वाली कुंजी या कुंजी का सेट होता है
दाईं ओर कुंजी या कमांड का एक सेट होता है जिसे बाईं ओर की कुंजी द्वारा निष्पादित किया जाएगा

अनिवार्य रूप से, एक कुंजी या कुंजियों का सेट है जो पर कमांड या संचालन को निष्पादित करेगा।





*उपरोक्त सिंटैक्स में, <तर्क> अनुभाग वैकल्पिक है।

विम विशेष तर्क

विम स्पेशल आर्गुमेंट्स ऐसे टैग हैं जिनका उपयोग कीमैप्स को अतिरिक्त कार्यक्षमता देने के लिए किया जाता है। ये तर्क :map कमांड के बाद और {rhs} और {lhs} से पहले दिखाई देते हैं।



उदाहरण के लिए, मानचित्र को बफ़र-विशिष्ट बनाने के लिए, विशेष तर्क का उपयोग निम्नलिखित तरीके से करें:

:नक्शा < बफर > < सीए > जीजीवीजी
<चुप> कीमैप से प्रतिध्वनित संदेशों को दबाने के लिए
<बफ़र> मानचित्र को बफ़र-विशिष्ट बनाने के लिए (वर्तमान बफ़र के लिए अद्वितीय)
<स्क्रिप्ट> यह दर्शाने के लिए कि नक्शा किसी स्क्रिप्ट या प्लगइन का हिस्सा है
<विशेष> *इसका उपयोग <> नोटेशन (फ़ंक्शन कुंजियाँ, नियंत्रण, शिफ्ट और अन्य गैर-वर्णमाला कुंजियाँ) का उपयोग करके मैपिंग के लिए विशेष कुंजियों को परिभाषित करने के लिए किया जाता है।
यह इंगित करता है कि मैपिंग का बायाँ भाग एक अभिव्यक्ति है और दाएँ हाथ की ओर प्राप्त करने के लिए इसका मूल्यांकन किया जाना है
<अद्वितीय> मानचित्र को स्थानीय और वैश्विक मानचित्रों के बीच अद्वितीय बनाना
<अब प्रतीक्षा करें> मानचित्र में अगले आदेश वर्ण की प्रतीक्षा को छोड़ने के लिए

निम्नलिखित छवि में विम विशेष कुंजी नोटेशन का उल्लेख किया गया है।

उदाहरण के लिए, यदि आप की मैपिंग में स्पेस कुंजी का उपयोग करना चाहते हैं, तो <स्पेस>नोटेशन का उपयोग किया जाएगा।

विम में एक बेसिक कीमैप बनाना

आइए विम कुंजी मैपिंग को एक बुनियादी उदाहरण से समझें। मैं सेलेक्ट ऑल लाइन्स कमांड को मैप करना चाहता हूं ( जीजीवीजी ) को Ctrl+ए चांबियाँ। Ctrl+a कुंजी को मैप करने के लिए, मैं विम में निम्नलिखित कमांड चलाऊंगा।

:नक्शा < सीए > जीजीवीजी

यहाँ, <सी-ए> का प्रतीक है Ctrl और चाबियाँ, जबकि जीजीवीजी फ़ाइल में सभी पंक्तियों का चयन करने का एक आदेश है। :नक्शा हालाँकि, कीवर्ड डिफ़ॉल्ट रूप से सामान्य मोड मैपिंग के लिए है :nmap के लिए भी स्पष्ट रूप से उपयोग किया जा सकता है सामान्य तरीका।

इसी तरह, लाइन नंबर को मैप करने के लिए कार्यक्षमता को टॉगल करें एफ1 मुख्य उपयोग:

:नक्शा < एफ1 > :नंबर सेट करें !

अब, जब आप F1 कुंजी दबाएंगे तो लाइन नंबर सक्षम हो जाएगा, और इसे दोबारा दबाने पर यह अक्षम हो जाएगा।

ध्यान दें कि यह विधि केवल वर्तमान बफ़र में कुंजियों को मैप करेगी और बफ़र बंद करने पर हटा दी जाएगी।

कीमैप्स को सूचीबद्ध करना

सामान्य, विज़ुअल और ऑपरेटर लंबित मोड की सभी कुंजी मैपिंग को सूचीबद्ध करने के लिए, :map कमांड का उपयोग करें।

:नक्शा

की मैपिंग को सूचीबद्ध करने के लिए डालना और कमांड लाइन मोड, :map का उपयोग करें! आज्ञा।

:नक्शा !

किसी विशिष्ट मोड की कुंजी मैपिंग को सूचीबद्ध करने के लिए, बस मैप कीवर्ड से पहले मोड का प्रारंभिक अक्षर टाइप करें।

:nmap सामान्य मोड के मानचित्र प्रदर्शित करने के लिए
:imap इन्सर्ट मोड के मानचित्र प्रदर्शित करने के लिए
:vmap दृश्य और चयन मोड के मानचित्र प्रदर्शित करने के लिए
:smap चयन मोड के मानचित्र प्रदर्शित करने के लिए
:xmap दृश्य मोड के मानचित्र प्रदर्शित करने के लिए
:cmap कमांड-लाइन मोड के मानचित्र प्रदर्शित करने के लिए
:ओमैप ऑपरेटर के लंबित मोड के मानचित्र प्रदर्शित करने के लिए

इसके अलावा, पथों के साथ प्लगइन मानचित्रों सहित सभी मानचित्रों को सूचीबद्ध करने के लिए, उपयोग करें :वर्बोज़ मानचित्र आज्ञा।

:वर्बोज़ मानचित्र

किसी विशिष्ट कुंजी के लिए, बस कमांड में कुंजी का उल्लेख करें ( :verbose मानचित्र <कुंजी> ).

कीमैप्स को स्थायी बनाना

उपरोक्त अनुभाग में उल्लिखित कीमैप्स केवल वर्तमान बफ़र में कुंजियों को मैप करेंगे। Vim कुंजी मैपिंग को स्थायी बनाने के लिए, मानचित्रों को vimrc फ़ाइल में रखना होगा।

ध्यान दें कि कीमैप को इसमें रखते समय vimrc फ़ाइल के पहले कोलन (:) न जोड़ें नक्शा आज्ञा।

कीमैप को इसमें डालने के बाद vimrc फ़ाइल, सहेजें और इसे :wq कमांड का उपयोग करके या शिफ्ट + zz कुंजियों का उपयोग करके छोड़ दें। कीमैप में रखे गए हैं vimrc फ़ाइल वैश्विक होगी और सभी विम सत्रों में इसका उपयोग किया जा सकता है। हालाँकि, कुछ कीमैप को अस्थायी रूप से अक्षम किया जा सकता है यदि वे वर्तमान सत्र में काम को प्रभावित कर रहे हैं, तो नीचे विम अनुभाग में कीमैप को कैसे हटाएं देखें।

vimrc विम की सेटिंग फ़ाइल है जिसमें विभिन्न कमांड और सेटिंग्स शामिल हैं। यह में मौजूद है /usr/share/vim/ MacOS पर निर्देशिका और /etc/vim लिनक्स पर. यह ध्यान रखना महत्वपूर्ण है कि vimrc उल्लिखित निर्देशिकाओं में फ़ाइलें सिस्टम-विशिष्ट फ़ाइलें हैं। आप इन फ़ाइलों को कुंजी मैपिंग के लिए भी संपादित कर सकते हैं, लेकिन मैं उपयोगकर्ता-विशिष्ट बनाने की अनुशंसा करूंगा vimrc होम निर्देशिका में फ़ाइल.

प्रत्यावर्तन से बचना

आगे बढ़ने से पहले, विम कुंजी मैपिंग में रिकर्सन के बारे में सीखना महत्वपूर्ण है। इसके नुकसान और इससे बचने के उपाय. इसे एक उदाहरण के माध्यम से समझा जा सकता है।

:नक्शा डीडी 3jdd

उपरोक्त उदाहरण में, मैंने मैप किया है डीडी 3 पंक्तियों से नीचे जाने और कर्सर के नीचे की रेखा को हटाने के लिए कुंजियाँ। अब, जब मैं दबाता हूँ डीडी , यह मानचित्र को निष्पादित करने का प्रयास करेगा 3jdd . विम व्याख्या करेगा डीडी मानचित्र के रूप में कमांड करें और मानचित्र को बार-बार निष्पादित करें, जैसा कि निम्नलिखित छवि में दिखाया गया है।

टिप्पणी : रिकर्सन विम संपादक को फ्रीज कर सकता है। इसे अनफ़्रीज़ करने के लिए दबाएँ Ctrl+C चांबियाँ।

पुनरावृत्ति से बचने के लिए, बदलें नक्शा कीवर्ड के साथ noremap , कहाँ ' नही रे ' मतलब गैर पुनरावर्ती . मैं प्रतिस्थापित कर दूंगा नक्शा कीवर्ड के साथ noremap उपरोक्त कीमैप में रिकर्सन को ठीक करने के लिए।

:noremap डीडी 3jdd

मैं उपयोग करने की अनुशंसा करूंगा noremap के बजाय नक्शा गलती से पुनरावर्ती मानचित्रण बनाने से बचने के लिए।

मोड-विशिष्ट कीमैप्स बनाना

विम ने की मैपिंग को इतना बहुमुखी बना दिया है कि किसी विशिष्ट मोड का कीमैप भी काफी आसानी से बनाया जा सकता है। उदाहरण के लिए, यदि आपने एक का उपयोग करके इन्सर्ट मोड के लिए एक कीमैप बनाया है एफ1 कुंजी, फिर आप उसे मैप कर सकते हैं एफ1 पूरी तरह से नए ऑपरेशन के लिए किसी अन्य मोड में कुंजी।

निम्नलिखित उदाहरण में, मैंने मैप किया है एफ1 में 3 पंक्तियाँ हटाने की कुंजी सामान्य मोड और यैंक 3 लाइनें डालना तरीका।

:nmap < एफ1 > 3डी
:imap < एफ1 > < सी-टी >

पहला नक्शा F1 कुंजी दबाते समय सामान्य मोड में तीन पंक्तियों को हटा देता है, जबकि दूसरा नक्शा उसी कुंजी का उपयोग करके सम्मिलित मोड में वर्तमान लाइन में एक इंडेंटेशन जोड़ता है। अब, आइए प्रत्येक मोड में मैपिंग को समझें।

सामान्य मोड मैपिंग

मानचित्र को सामान्य मोड में लागू करने के लिए, केवल उपयोग करें nmap कीवर्ड. उदाहरण के लिए, किसी फ़ाइल की सभी पंक्तियों को कॉपी करने के लिए Ctrl+C कुंजियाँ, मैं निम्नलिखित कमांड का उपयोग करूंगा।

:nmap < सी-सी > ggVGy

जैसा कि पहले चर्चा की गई है, किसी कुंजी को मैप करने के लिए गैर-पुनरावर्ती विधि का उपयोग करना सबसे अच्छा अभ्यास है, इसलिए, मैं इसे बदल दूंगा nmap साथ noremap कीवर्ड.

:nnormap < सी-सी > ggVGy

इसे बिना कोलन (:) के रखें vimrc इसे एक स्थायी कीमैप बनाने के लिए फ़ाइल करें।

मैं इस्तेमाल करूँगा noremap बदले में नक्शा निम्नलिखित उदाहरण में.

मोड मैपिंग सम्मिलित करें

इन्सर्ट मोड के लिए कुंजियों को मैप करने के लिए, बस उपयोग करें मैं के बजाय एन . उदाहरण के लिए, इन्सर्ट मोड में, Ctrl+p और Ctrl+n कुंजियों का उपयोग क्रमशः बैकवर्ड और फॉरवर्ड मैच के आधार पर शब्द को स्वत: पूर्ण करने के लिए किया जाता है। मैप करने के लिए Ctrl+p टैब कुंजी के साथ कुंजी, मैं निम्नलिखित कमांड का उपयोग करूंगा।

:inoremap < टैब > < सी-पी >

इससे भी महत्वपूर्ण बात यह है कि यदि आप मानचित्र बनाना चाहते हैं ऑपरेटर लंबित मोड में आदेश सम्मिलित मोड , तो आपको डालने की आवश्यकता है उन आदेशों को निष्पादित करने के लिए इन्सर्ट मोड से बाहर निकलने के लिए दाईं ओर की कुंजी। उदाहरण के लिए, निम्नलिखित कीमैप में, मैं इसका उपयोग करके 3 लाइनें हटाना चाहता हूं Ctrl+x कुंजियाँ और इन्सर्ट मोड पुनः दर्ज करें।

:inoremap < सी-एक्स > 3डीडीआई

अब, जब मैं दबाता हूँ Ctrl+x चाबियाँ, यह प्रिंट करेगा 3डीडीआई इसे क्रियान्वित करने के बजाय आदेश दें।

इसे ठीक करने के लिए, मैं डालूँगा से पहले 3डीडीआई आज्ञा।

:inoremap < सी-एक्स > < ईएससी > 3डीडीआई

अब, कमांड मुझे इन्सर्ट मोड में रखें निष्पादित करेगा।

कई मिनी लैपटॉप में इसकी कमी होती है ईएससी कुंजी, जो वर्तमान मोड से बाहर निकलने के लिए महत्वपूर्ण है। तो, मैप करने के लिए ईएससी इन्सर्ट मोड से बाहर निकलने के लिए कुंजी, कुंजी मैपिंग का उपयोग किया जा सकता है। निम्नलिखित उदाहरण में, मैं उपयोग कर रहा हूँ पूर्व सामान्य मोड से बाहर निकलने के लिए कुंजियाँ।

:inoremap पूर्व < ईएससी >

जब आप जल्दी से दबाते हैं पूर्व कुंजियाँ सम्मिलित मोड से बाहर निकल जाएंगी, इस प्रकार सामान्य मोड में प्रवेश हो जाएगा।

विज़ुअल मोड मैपिंग

विम संपादक में टेक्स्ट का चयन करने के लिए विज़ुअल मोड एक बहुत ही महत्वपूर्ण मोड है। मूल चयन के अलावा, विज़ुअल मोड में अन्य अलग-अलग मोड होते हैं जैसे विज़ुअल लाइन, और विज़ुअल ब्लॉक मोड।

विज़ुअल मोड में, टिल्डे (~) मामले को टालने के लिए उपयोग किया जाता है। टिल्ड (~) का उपयोग करने के लिए आपको दो कुंजी दबानी होंगी (शिफ्ट+~) . निम्नलिखित उदाहरण में, मैं c कुंजी को मैप कर रहा हूं दृश्य विधा कर्सर के नीचे एक शब्द का चयन करने और उसका केस बदलने के लिए।

:vnoremap c iw~

अब, विज़ुअल मोड में प्रवेश करने के लिए v दबाएँ और कर्सर के नीचे शब्द को टॉगल करने के लिए c कुंजी दबाएँ जैसा कि निम्नलिखित GIF में दिखाया गया है।

कमांड-लाइन मोड मैपिंग

कई विम आवश्यक कमांड केवल कमांड-लाइन मोड में काम करते हैं। जैसे कि, फाइल को सेव करना :में कमांड का उपयोग, इसी तरह, सहेजने और छोड़ने के लिए किया जाता है :wq कमांड का प्रयोग किया जाता है. सभी टैब और स्प्लिट ऑपरेशन भी कमांड-लाइन मोड में किए जाते हैं। उदाहरण के लिए, एक नया टैब बनाने के लिए, : अधीनस्थ कमांड का प्रयोग किया जाता है. खैर, जल्दी से एक टैब बनाने के लिए, Ctrl+t चाबियाँ पर्याप्त हैं.

:cnoremap < सी-टी > विषय < करोड़ >

अब, कमांड-लाइन मोड में प्रवेश करने के लिए कोलन (:) दबाएं Ctrl+t एक नया टैब खोलने के लिए; यह संपूर्ण टाइप करने की तुलना में बहुत तेज़ है विषय आदेश और वापस करना चाबी।

विम कस्टम कमांड बनाना
मानचित्र निष्पादित करने के लिए कमांड मोड में प्रवेश करना कम उपयोगी प्रतीत होता है। लेकिन आप इसका उपयोग करके विम में अपने स्वयं के कस्टम कमांड बना सकते हैं :आज्ञा विकल्प। यह सुविधा काफी हद तक विम कुंजी मैपिंग से मिलती जुलती है। उदाहरण के लिए, लाइन नंबर और टेक्स्टविड्थ को 80 पर सेट करने के लिए एक त्वरित कमांड बनाने के लिए, निम्नलिखित कमांड का उपयोग करें।

:कमांड Mycmd :सेट नंबर textwidth = 80

अब, कमांड मोड दर्ज करें और निष्पादित करें :मायसीएमडी आज्ञा।

ऑपरेटर लंबित मोड मैपिंग

ऑपरेटर लंबित मोड एक ऐसा मोड है जिसमें ऑपरेटर कुंजी दबाए जाने के बाद विम मोशन कमांड की प्रतीक्षा करता है। सामान्य ऑपरेटर y, d, और c हैं। उदाहरण के लिए, वर्तमान लाइन और निम्नलिखित 3 पंक्तियों को हटाने के लिए, आप d ऑपरेटर का उपयोग करेंगे 3ज गति (d3j). वांछित संचालन प्राप्त करने के लिए आप इन कुंजियों को एक साथ नहीं दबा सकते।

मोड का उपयोग आम तौर पर गतियों को मैप करने के लिए किया जाता है। आइए एक गति का मानचित्रण करें जो वर्तमान रेखा और उसके बाद आने वाली 3 रेखाओं का चयन करेगा।

:onoremap < F2 > 3ज

अब, वर्तमान लाइन और उसके बाद आने वाली 3 लाइनों को खींचने के लिए इसका उपयोग करें theF2 चाबियाँ, उसी तरह, डी ऑपरेटर भी लगाया जा सकता है.

ध्यान रखने योग्य एक और महत्वपूर्ण बात यह है कि यदि आप उपर्युक्त मैप किए गए मोशन में गिनती जोड़ते हैं, मान लीजिए 2 , मानचित्र इसे 23j के रूप में लेगा, 6j के रूप में नहीं। इसे ठीक करने के लिए, अभिव्यक्ति रजिस्टर '= का उपयोग किया जा सकता है। उपरोक्त मानचित्र को इस प्रकार संशोधित किया जा सकता है @='3j' .

:onoremap < F2 > @ ='3j' < करोड़ >

माउस इवेंट को कैसे मैप करें

हालाँकि विम एक पूरी तरह से अनुकूलन योग्य कीबोर्ड-केंद्रित टेक्स्ट एडिटर है, लेकिन माउस कार्यक्षमता की उपलब्धता इसे और भी बेहतर बनाती है। सामान्य कीबोर्ड कुंजियों के अलावा, सभी माउस ईवेंट को विम में भी मैप किया जा सकता है। उदाहरण के लिए, यदि आप क्रमशः आगे और पीछे के निशानों को उछालने के लिए दाएँ डबल क्लिक और बाएँ डबल क्लिक को मैप करना चाहते हैं, तो निम्नलिखित मैपिंग का उपयोग करें।

:noremap < 2 -दायां चूहा > ] `
:noremap < 2 -बायां माउस > [ `

अन्य माउस ईवेंट जिन्हें मैप किया जा सकता है, निम्न तालिका में दिए गए हैं।

<लेफ्टमाउस> <लेफ़्टरिलीज़> <लेफ्टड्रैग> <2-लेफ्टमाउस>
<राइटमाउस> <राइटरिलीज़> <राइटड्रैग> <2-राइटमाउस>
<मिडिलमाउस> <मध्यरिलीज़> <मिडिलड्रैग> <3-लेफ्टमाउस>
<3-राइटमाउस>
<4-लेफ्टमाउस>
<4-राइटमाउस>

विम में लीडर कुंजी के साथ मैप कैसे करें

लीडर कुंजी के बिना विम मैपिंग अधूरी है। लीडर कुंजी डिफ़ॉल्ट कुंजी है जिसका उपयोग कुंजियों को मैप करने के लिए किया जा सकता है, भले ही उन्हें कुछ अन्य कार्यों को करने के लिए मैप किया गया हो। उदाहरण के लिए, यदि आपने मैप किया है डी सभी पंक्तियों को हटाने के लिए कुंजी, फिर हम लीडर कुंजी का उपयोग करके केवल 5 पंक्तियों को हटाने के लिए उसी कुंजी को मैप कर सकते हैं।

उन लोगों के लिए जो विम लीडर कुंजी से परिचित नहीं हैं। यह एक कुंजी है जो मैपिंग कमांड या संचालन के लिए किसी अन्य कुंजी या कुंजी के सेट से पहले जुड़ी होती है। विम की डिफ़ॉल्ट लीडर कुंजी बैकस्लैश (\) है, लेकिन यह अनुकूलन योग्य है।

उदाहरण के लिए, डीडी कमांड का उपयोग कर्सर के नीचे की लाइन को हटाने के लिए किया जाता है। यदि आप मैप करना चाहते हैं डीडी फ़ाइलों में सभी पंक्तियों को हटाने का आदेश दें, फिर आप लीडर कुंजी का उपयोग कर सकते हैं।

:noremap < नेता > डीडी ggVGd

अब, जब भी आप दबाएँ \dd कुंजी, फ़ाइल की सभी पंक्तियाँ हटा दी जाएंगी। आप विम लीडर कुंजी को विंडोज़ पर नियंत्रण कुंजी या मैकओएस में कमांड कुंजी के रूप में विशेषता दे सकते हैं।

विम्सस्क्रिप्ट फ़ंक्शन को कैसे मैप करें

विम संपादक केवल कमांड या संचालन तक ही सीमित नहीं है। कस्टम कार्यक्षमता बनाने के लिए विम के आसपास एक संपूर्ण प्रोग्रामिंग भाषा है जिसे विम्सस्क्रिप्ट कहा जाता है। आप आसानी से एक स्क्रिप्ट या फ़ंक्शन बना सकते हैं और उसे एक कुंजी पर मैप कर सकते हैं। उदाहरण के लिए, आइए एक फ़ंक्शन बनाएं जो लाइन नंबर, माउस कार्यक्षमता और टेक्स्टविड्थ जैसी सेटिंग्स को सक्षम करेगा।

समारोह मेरी सेटिंग्स ( )
तय करना संख्या
तय करना चूहा =ए
तय करना textwidth = 80
अंतफ़ंक्शन

इस फ़ंक्शन को vimrc फ़ाइल में रखें।

आइए इस फ़ंक्शन को लीडर और s कुंजियों के साथ मैप करें। मैं इस्तेमाल करूँगा

:noremap < नेता > s : MySettings पर कॉल करें ( ) < करोड़ >

अब, जब भी आप दबाएँ \एस कुंजियाँ, फ़ंक्शन को कॉल किया जाएगा और फ़ंक्शन के अंदर कोई भी कार्यक्षमता निष्पादित होगी।

टिप्पणी : विम में एक कस्टम फ़ंक्शन बनाते समय फ़ंक्शन नाम का पहला अक्षर हमेशा बड़े अक्षरों में लिखा जाना चाहिए।

विम में बाहरी कमांड को कैसे मैप करें

बाहरी कमांड को विम में भी मैप किया जा सकता है। बाहरी कमांड लिनक्स या यूनिक्स कमांड को संदर्भित करते हैं। उदाहरण के लिए, यदि आप बाहरी मानचित्र बनाना चाहते हैं क्रम से लगाना वर्तमान बफ़र में सभी पंक्तियों को क्रमबद्ध करने का आदेश एफ1 कुंजी, निम्न आदेश का उपयोग करें।

:noremap < एफ1 > : %! क्रम से लगाना < करोड़ >

उसी तरह, यदि आप एक स्क्रिप्ट फ़ाइल लिख रहे हैं और इसे विम सत्र छोड़े बिना निष्पादन योग्य बना रहे हैं, तो आप इसका उपयोग कर सकते हैं चामोद आंतरिक रूप से आदेश दें. उदाहरण के लिए, वर्तमान फ़ाइल को निष्पादन योग्य बनाने के लिए, आप कमांड निष्पादित कर सकते हैं :!chmod +x % विम में. यदि आप यह कार्य बार-बार करते हैं, तो बस इसके लिए एक कुंजी मैप करें।

:noremap < एफ1 > : ! चामोद +x %

विम में, किसी भी बाहरी कमांड का उपयोग विस्मयादिबोधक (!) चिह्न के साथ किया जा सकता है।

विम में कीमैप कैसे निकालें

विम में कीमैप्स को हटाने के लिए, पहले पहचानें कि इसे कहां परिभाषित किया गया है। जैसा कि पहले चर्चा की गई है, कीमैप बफर-स्थानीय और स्थायी हो सकते हैं। यदि कीमैप स्थायी है और vimrc फ़ाइल में रखा गया है, तो बस उन्हें फ़ाइल से हटाने से कुंजियाँ अनमैप हो जाएंगी।

यदि मैपिंग वर्तमान बफ़र में की गई है, तो उन्हें इसका उपयोग करके हटाया जा सकता है :अनमैप या :अनमैप! आदेश.

  • :अनमैप सामान्य, दृश्य, चयन या ऑपरेटर लंबित मोड के कीमैप को साफ़ करने के लिए
  • :अनमैप! इन्सर्ट और कमांड-लाइन मोड के कीमैप को साफ़ करने के लिए

उदाहरण के लिए, को हटाने के लिए कुंजी, का उपयोग करें :अनमैप . इसके अलावा, कुंजियों को हटाना मोड-विशिष्ट हो सकता है। यदि आप सामान्य मोड मैप को हटाना चाहते हैं, तो इसका उपयोग करें :नूनमैप <कुंजी> . कीमैप को हटाने के लिए अन्य मोड-विशिष्ट कमांड नीचे उल्लिखित हैं:

:नूनमैप के नक्शों को हटाने के लिए सामान्य तरीका
:iunmap के नक्शों को हटाने के लिए डालना तरीका
:वुनमैप के नक्शों को हटाने के लिए तस्वीर और चुनना तरीका
:सनमैप के नक्शों को हटाने के लिए चुनना तरीका
:xunmap के नक्शों को हटाने के लिए तस्वीर तरीका
:cunmap के नक्शों को हटाने के लिए कमांड लाइन तरीका
:ounmap के नक्शों को हटाने के लिए ऑपरेटर लंबित है तरीका

वर्तमान बफ़र में सभी मानचित्रों को हटाने के लिए, का उपयोग करें :mapclear आज्ञा।

:mapclear

उपरोक्त आदेश सामान्य, दृश्य, चयन या ऑपरेटर लंबित मोड के सभी कीमैप को साफ़ कर देगा।

इन्सर्ट और कमांड लाइन मोड के सभी कीमैप को साफ़ करने के लिए उपयोग करें:

:mapclear !

ध्यान दें कि डिफ़ॉल्ट विम कमांड स्पष्ट नहीं हो सकते हैं, हालाँकि, इसका उपयोग करके इसे अक्षम किया जा सकता है :अनमैप के साथ आदेश दें <नहीं> . उदाहरण के लिए, यदि आप dd कार्यक्षमता को अक्षम करना चाहते हैं जो कर्सर के नीचे की रेखा को हटा देती है, तो इसका उपयोग करें :अनमैप डीडी <एनओपी>।

:अनमैप डीडी < नहीं >

डीडी अब वर्तमान बफ़र में कार्यात्मक नहीं होगा। इस पद्धति का उपयोग करके, किसी भी कीमैप को वर्तमान सत्र के लिए अक्षम किया जा सकता है।

विम की मैपिंग चीट शीट

निम्नलिखित छवि संदर्भ के लिए सभी कमांड और उनके विशिष्ट मोड की एक सूची प्रदान करती है।

निष्कर्ष

विम कुंजी मैपिंग आपके कार्यों, अक्सर उपयोग की जाने वाली कुंजी बाइंडिंग, कमांड और अन्य संचालन को स्वचालित करने का एक आसान तरीका है। यह एक विविध विषय है और इस गाइड में, मैंने विम में कुंजी मैपिंग से संबंधित सभी प्रमुख पहलुओं को शामिल किया है। सामान्य सिंटैक्स से लेकर बुनियादी कीमैप बनाने तक और उन्नत विम्सस्क्रिप्ट फ़ंक्शंस और बाहरी कमांड को मैप करने तक। विम कुंजी मैपिंग के बारे में अधिक जानने के लिए, इसका उपयोग करें :कुंजी-मैपिंग में सहायता करें विम में कमांड।