2008-12-19 6 views
72

मैं एक रजिस्टर में एक लाइन को यंक करना चाहता हूं: "{register}y लेकिन बिना पंजीकरण के पहले जो पंजीकरण में था। मुझे अक्सर एक रजिस्टर में गैर-संगत लाइनों की प्रतिलिपि बनाने की आवश्यकता होती है, और मैं कभी-कभी स्टैक जैसे रजिस्टरों का उपयोग करना चाहता हूं।इसे बिना किसी लिखने के एक विम रजिस्टर में लाइनें जोड़ने के लिए

उदाहरण:

line1 
line2 
line3 

मैं, line1 कॉपी करने के लिए उस पर कर्सर डालने और "ay में प्रवेश, तो line3 चल रहा है और "ay करना द्वारा चाहते हैं। फिर, जब मैं "ap करूँगा, दोनों line1 और line3 चिपकाए जाएंगे।

क्या प्लगइन के बिना यह संभव है? प्लगइन्स के साथ?

+0

फ़ाइल के शीर्ष पर परिभाषाओं की त्वरित सूची बनाने के लिए बढ़िया है। –

उत्तर

110

यदि आप किसी नामांकित रजिस्टर में शामिल होना चाहते हैं तो इसका ऊपरी केस कैरेक्टर का उपयोग करें। अर्थात अपने उदाहरण में:

 
"ayy 
"Ayy 
"ap 
+8

क्या गैर-नामित रजिस्टर में शामिल होने का कोई संभावित तरीका है? (मुख्य एक) – Zaffy

+3

@Zaffy http://stackoverflow.com/questions/18536511/vim-how-to-append-yanked-text-to-unnamed-register – PonyEars

11

बस MarkB की प्रतिक्रिया पर विस्तार करने के लिए, क्या आप जानते आप भी अपने झटका के लिए पाठ का कोई खंड का चयन करने के मार्कर का उपयोग कर सकते हैं?

उस ब्लॉक की पहली पंक्ति पर जाएं जिसे आप यंक करना चाहते हैं और मार्कर के रूप में एक अक्षर चुनने के बाद मार्क कमांड दर्ज करें, उदा।

:'a,.ya A 

इस आदेश का मतलब है मेरी मार्कर युक्त लाइन से पाठ के ब्लॉक लेने के लिए एक बुलाया:

ma (entered in command mode, i.e. no colon) 

तो ब्लॉक आप झटका और कमांड दर्ज करना चाहते हैं की तह तक जाना वर्तमान रेखा और इसे बफर में yank। मार्कबी के लागू होने के समान नियम लागू होते हैं, बफर को ओवरराइट करने के लिए लोअरकेस बफर नाम का उपयोग करें। बफर में संलग्न करने के लिए अपरकेस बफर नाम का उपयोग करें। तो इस मामले में यह बफर ए की सामग्री में शामिल होगा।

एनबी। आपके मार्कर के लिए उपयोग किए जाने वाले 'ए' के ​​पास आपके रजिस्टर का चयन करने के लिए उपयोग किए जाने वाले 'ए' से कोई लेना देना नहीं है। (AFAIK लेकिन वाईएमएमवी)

बीटीडब्ल्यू 'ए ​​(एस्ट्रोफ़े ए) मार्कर ए वाली रेखा को संदर्भित करता है। 'ए (बैकक्वोट ए) कर्सर के नीचे वर्ण को संदर्भित करता है जब आप एम में प्रवेश करते हैं। क्योंकि यह चरित्र मार्कर एक चरित्र अप करने के लिए बस से पहले चरित्र है कि आप मार्कर ख के साथ चिह्नित किया है के साथ चिह्नित के बीच पाठ को नष्ट करेगा

`ad`b (also entered in command mode) 

उपयोगी है।

+0

'a, .ya एक काम करता है लेकिन जब मैं कोशिश करता हूं एक के सामने टिक -> \ 'यह कहता है: E492: एक संपादक कमांड नहीं: \ 'a, .ya ए उदाहरण में मार्कर के अलावा किसी अन्य अक्षर का उपयोग न करने में मदद करता है, इसलिए यह स्पष्ट है कि कौन सा पत्र कौन सा बात है :) –

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