2010-05-31 10 views
24

मैं निम्नलिखित विम मैक्रो का उपयोग करता हूं (यह एक्सएमएल टैग के अंदर वर्तमान लाइन रखता है):एक विम मैक्रो को कैसे सहेजना है जिसमें "एस्केप" कुंजी प्रेस शामिल हैं?

I<e>^[A</e> 

तो मैंने इसे अपने .vimrc

let @e='I<e>^[A</e>' 

में सहेजा लेकिन यह काम नहीं करता है।
^[ भाग का अर्थ है "एस्केप" लेकिन यह .vimrc

में समझा नहीं गया है मैं इस मैक्रो, या "एस्केप" वाले किसी भी मैक्रो को कैसे सहेज सकता हूं?

उत्तर

31

<Ctrl-v><Esc> के साथ सम्मिलित मोड में भागने का प्रयास करें। विम में :help i_CTRL-V देखें।

+2

नहीं, यह नहीं होना चाहिए। ^के साथ [[एक एकल charater (ईएससी के लिए बच निकला कोड) है, न कि '^' और '[' अक्षर। इसे फिर से vim और gvim 7.2 में परीक्षण किया गया है, यह सही ढंग से टैग में एक पंक्ति लपेटता है। – catchmeifyoutry

+2

सरल परीक्षण, जब आप कर्सर को^[भाग के साथ ले जाते हैं, तो आप इसे^और [के बीच रखने में सक्षम नहीं होना चाहिए, क्योंकि यह एक एकल कीकोड का प्रतिनिधित्व करता है। – catchmeifyoutry

+0

चाल वास्तव में यह एकल कुंजीकोड चरित्र था, मुझे पहले अंतर नहीं दिखाई देता था। आपका बहुत बहुत धन्यवाद! –

17

<ESC> यहां आपका मित्र है। सचमुच, टाइप <एससी> इस प्रकार:

let @e=I<e><ESC>A</e> 

अधिक जानकारी के लिए विम में :help key-notation देखें।

अद्यतन:

आह ... कुंजी मैपिंग में <ESC> काम करता है (जैसे :map <Leader>e <ESC>I<e><ESC>A</e> [परीक्षण किया]), लेकिन मैक्रो, जिसका शाब्दिक विस्तार कर रहे हैं में नहीं। मैं बस की कोशिश की है और यह परीक्षण किया:

:let @e='^[I<e>^[A</e>' 

कहाँ ^[ सिर्फ एक चार CTRL + वीESC मार द्वारा गठित है। मैक्रो की शुरुआत में सही से बचें।

+0

काम नहीं करता है।इसके अलावा, मुझे लगता है कि उद्धरण की आवश्यकता है। –

+1

अब मुझे लगता है कि मैं समझता हूं कि "काम नहीं करता" से आपका क्या मतलब है। उत्तर अपडेट किया गया। – Johnsyweb

+1

यह काम करता है, बहुत बहुत धन्यवाद :- डी चाल के बजाय इस एकल चरित्र का उपयोग करना था [अब मुझे एहसास है कि कैचमेइफॉउट्री का समाधान था! –

4

आप vim के लिए Windows व्यवहार जहां Ctrl +वी पेस्ट आदेश है का उपयोग कर रहे हैं, तो बराबर अनुक्रम Ctrl +क्यू

1

आज है मैं बुलाया प्लग-इन का vim की खोज की मारवीम (http://www.vim.org/scripts/script.php?script_id=2154)।

यह मैक्रोज़ को संग्रहीत करने और शॉर्टकट का उपयोग करके बाद में निष्पादित करने में सक्षम है।

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