नोट: मैं मान रहा हूं कि आप a
इस उत्तर की संपूर्णता के लिए रजिस्टर का उपयोग कर रहे हैं , लेकिन आप किसी भी रजिस्टर का उपयोग कर सकते हैं
नोट 2: <1b>
है Esc; आप इसके साथ सम्मिलित कर सकते हैं Ctrl+vऔर फिर Esc। यह ^[
( display
सेटिंग के आधार पर ) के रूप में भी दिखाई दे सकता है ।
यह मानचित्रण नहीं है; तो यह समझ में आता है कि :map
काम नहीं करता है। यह एक रजिस्टर में दर्ज है, और आप इसे किसी भी रजिस्टर की तरह देख और संपादित कर सकते हैं।
वह सब qकरता है "इस रजिस्टर को साफ़ करें, और इसे किसी भी कीस्ट्रोक को जोड़ें" , और यह सब "आदेशों के अनुसार एक रजिस्टर का मूल्यांकन"@ करता है ।
मैक्रो के बारे में "अलग" कुछ भी नहीं है, आप किसी भी रजिस्टर को मैक्रो के रूप में आमंत्रित कर सकते हैं।
करने के लिए देखने सिर्फ उपयोग करें:
:echo @a
बिल्कुल किसी रजिस्टर की तरह।
आप :registers
सभी रजिस्टरों को देखने के लिए भी उपयोग कर सकते हैं ।
संपादित करने के लिए आप कई काम कर सकते हैं:
सबसे आसान तरीका है कि आप इसे केवल असाइन करें @a
, जैसे:
:let @a='iasd<1b>'
यह इन्सर्ट मोड ( i
), इंसर्ट asd
और एस्केप टू नॉर्मल मोड से शुरू होगा।
व्यापक संपादन के लिए यह बहुत उपयोगी नहीं है; आप फ़ंक्शंस का उपयोग कर सकते हैं (यानी। substitute()
), या शायद कुछ ( :let @a=@a . 'more'
) को जोड़ सकते हैं , लेकिन बीच में कुछ बदलना इतना आसान नहीं है।
मैंने पाया है कि इसके लिए सबसे अच्छा तरीका है, एक नया बफर शुरू करना :split
या उसके साथ :tabnew
रजिस्टर को एडिट करना, उसे एडिट करना और फिर उसे कॉपी करना।
आप उपयोग कर सकते हैं "apजो बफर में पाठ को सम्मिलित करेगा (जहां a
आपका रजिस्टर है):
iThis is A<1b>
अब मैं सिर्फ लाइन को शायद बदल सकता हूं:
iThis is an edited macro<1b>
फिर मैं रजिस्टर में ^v$"ayइस लाइन को कॉपी (कॉपी) करता हूं a
:
- ^ लाइन की शुरुआत के लिए
- v दृश्य विधा के लिए
- $ लाइन के अंत के लिए
- "ay पंजीकरण करने के लिए चयन रद्द करें
a
यदि आप चाहें, तो आप दृश्य मोड का उपयोग किए बिना ऐसा कर सकते हैं ^"ay$।
अब आप उपयोग कर सकते हैं @a, जैसे कि यह वही है जो आपने मूल रूप से रिकॉर्ड किया था।
तुम भी बस का उपयोग कर सकते हैं yy, और फिर @", जो थोड़ा तेज है। यह भी अनुगामी newline की नकल करेगा, हालांकि, और दुष्प्रभाव हो सकता है ... इस तेजी से बनाने के लिए एक और तरीका एक मैक्रो का उपयोग करने के लिए है :-)
Enter
अपनी रिकॉर्डिंग के अंत में दबाया था । कई मामलों में यह सौम्य हो सकता है, लेकिन उन परिदृश्यों में जहां आपने रिकॉर्डिंग के अंत में ध्यान से कर्सर की स्थिति तैयार की है, यह दोहराव को प्रभावित कर सकता है।