2009-12-05 34 views
5

पर कीस्ट्रोक का अनुक्रम मैप करना क्या कमांड लाइन कमांड (कुंजी मोड में : के बाद दर्ज किया गया कमांड) के लिए कीस्ट्रोक के अनुक्रम को मैप करने का कोई तरीका है?कमांड लाइन कमांड

+1

ज़रूर! क्या आप इसका उदाहरण दे सकते हैं कि आप क्या करने की कोशिश कर रहे हैं, या आप सामान्य रूप से पूछ रहे हैं? – Rook

+0

बस सामान्य रूप से, मुझे कई बार लगता है कि मैं वही काम बार-बार कर रहा हूं लेकिन दूसरी तरफ, मैं इसके लिए एक बाध्यकारी बनाना नहीं चाहता हूं (मैं नहीं चाहता कि मैं एक और इमाक्स जहां मैं उपयोग कर रहा हूं मेरे सभी आदेशों के लिए संशोधक कुंजी) – Opt

उत्तर

7

हाँ, और यह सहज कहा जाता है: मानचित्र

उदाहरण:

:map foo :echo "bar"<CR> 

नहीं जब डालने मोड में आप कुंजी foo vim "बार" के साथ जवाब देंगे दबाएँ। अधिक जानकारी के लिए vim में :help :map टाइप करें। आप मैपिंग्स को अपनी .vimrc फ़ाइल में डिफ़ॉल्ट रूप से लोड करना चाहते हैं।

आप अलग-अलग मोड, जैसे कि डालने मोड (: imap) और विजुअल मोड (: vmap) के लिए स्वतंत्र रूप से कीस्ट्रोक मैप कर सकते हैं। इन्हें भी देखें vim remapping के विषय पर मदद:

अद्यतन

आप आदेश मोड के लिए एक उपनाम का उपयोग करना चाहते हैं (लेकिन इस डालने मोड के लिए भी किया जा सकता है), तो आप चाहते हैं (noremap) संक्षेप का उपयोग करने के लिए।

कमांड मोड के लिए संक्षेप को परिभाषित करने के लिए, का उपयोग करें: ca (जो cabbrev के लिए एक शॉर्टेंड है)। Vim मदद :help :ca देखें और अधिक जानकारी के लिए :help :abbreviations देखें।

ध्यान दें कि मानचित्र के विपरीत, संक्षेप को vim आदेशों द्वारा प्रतिस्थापित नहीं किया जाता है बल्कि शाब्दिक पात्रों द्वारा प्रतिस्थापित किया जाता है। जब आप स्पेस दबाते हैं या दर्ज करते हैं तो संक्षेप में ट्रिगर किया जाता है।

उदाहरण:

" let me type :syn=cpp instead of :set syntax=cpp 
" 
:ca syn set syntax 

" fix my favorite spelling error 
" 
:abbr teh the 

" this does something different than the :map example above 
" 
:iabb foo :echo "bar"<CR> 

" this is ugly, misusing an abbreviation as :map by simulating ESCAPE press 
" 
:iabb hello <ESC>:echo "world"<CR> 
+0

यह कुछ चीजें अधिक परेशान करता है हालांकि - अगर उदाहरण के लिए मैं प्रवेश करना चाहता हूं, तो मुझे उस कमांड अनुक्रम के लिए थोड़ी देर के लिए रास्ता तय करना होगा क्योंकि fo foo का एक सबस्ट्रिंग है। कुंजी प्रेस के अनुक्रम में कमांड लाइन कमांड (कमांड के बाद दर्ज किए गए कमांड) को मैप करने का कोई तरीका है? – Opt

+0

मैंने प्रतिक्रिया में अपनी पोस्ट अपडेट की है – catchmeifyoutry