सेविंग विम मैक्रोज़


166

किसी को पता है कि कैसे ठीक से बचाने के लिए / पुन: उपयोग मैक्रोज़ एक विम संपादक के अंदर दर्ज किया?

जवाबों:


216

qमैक्रो रिकॉर्ड करने के लिए एक पत्र के बाद उपयोग करें । यह सिर्फ कॉपी / पेस्ट रजिस्टर में से एक में जाता है ताकि आप इसे सामान्य मोड में "xpया "xPकमांड के साथ सामान्य के रूप में पेस्ट कर सकें ।

इसे बचाने के लिए आप .vrc को खोलते हैं और सामग्री पेस्ट करते हैं, फिर अगली बार जब आप vim शुरू करेंगे तो रजिस्टर लगभग हो जाएगा।
प्रारूप कुछ इस प्रकार है:

let @q = 'macro contents'

उद्धरण से सावधान रहें, हालांकि। उन्हें ठीक से बचना होगा।

तो आप कर सकते हैं एक मैक्रो को बचाने के लिए:

  • सामान्य मोड से: qq
  • जो भी आदेश दर्ज करें
  • सामान्य मोड से: q
  • खुला है
  • "qpमैक्रो को अपनी let @q = '...'लाइन में सम्मिलित करने के लिए

3
इसके अलावा, यदि आपको CTRL-V <ESC>सही वर्ण सम्मिलित करने के लिए सम्मिलित वर्णों में विशेष वर्ण (जैसे बचना, मेरे मामले में) सम्मिलित करना आवश्यक है। एक शाब्दिक <ESC>काम नहीं करता
adam_0

5
"ध्यान दें, कि उपरोक्त विधि का उपयोग करना: किसी भी मैक्रोज़ के लिए अपेक्षित रूप से काम नहीं करेगा, जिसे आप एक <CR> या <NL> वर्ण (गाड़ी वापसी या न्यूलाइन) में समाप्त करते हैं।" vim.wikia.com/wiki/Macros#Saving_a_macro
पाओलो

2
क्या उद्धरण (मैक्रो सामग्री के आसपास) आवश्यक हैं?
user2472071

15
Ctrl+r Ctrl+r registerNameनिविष्टियाँ उनकी व्याख्या किए बिना सामग्री को पंजीकृत करती हैं - इससे बेहतर "qp। फिर भी इन-विम विधि के लिए +1।
एलएएफके का कहना है कि मोनिका

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

21

अधिक मजबूत समाधान के लिए आप मार्विम को चेकआउट कर सकते हैं ।

आइए हम एक विशिष्ट नामस्थान में एक मैक्रो को सहेजते हैं (या एक डिफ़ॉल्ट नाम स्थान के रूप में फ़िलाटाइप का उपयोग करें) और आप बाद में अपने सहेजे गए मैक्रोज़ की खोज कर सकते हैं और उन्हें उपयोग के लिए तैयार एक रजिस्टर में लोड कर सकते हैं।

यदि आप बहुत सारे मैक्रोज़ का पुन: उपयोग करते हैं, तो यह काफी मददगार है।


6
बस इसे दूसरा बनाना चाहते हैं और कहते हैं कि marvim को सेटअप करना कितना आसान है- किसी एकल फ़ाइल को अपनी / प्लगइन निर्देशिका में कॉपी करें, फिर मैक्रो और F2 को चलाने के लिए F3 का उपयोग करें।
राणे रेवरे

18

अपने मैक्रोज़ को अपने ~ / .vimrc के अंदर लिखें, उदाहरण के लिए CTRL + O द्वारा लॉन्च किए गए मैक्रो को परिभाषित करने के लिए, अपने ~ / .vimrc में निम्न पंक्ति जोड़ें:

map <C-O> MACROTEXT

जब आप टाइप करके मैक्रो रिकॉर्ड करते हैं तो आप टाइप करके qaअपने मैक्रो टेक्स्ट को पुनः प्राप्त कर सकते हैं"ap


"एपी या समकक्ष काम नहीं किया, लेकिन आप एक ही जानकारी के लिए प्राप्त कर सकते हैं: reg
DShook

"एपी aरजिस्टर पर दर्ज एक मैक्रो को संदर्भित करेगा
टायलर फॉवेल

11

:mkexrc(या :mkvimrc) आदेश सभी मौजूदा बचाने के लिए इस्तेमाल किया जा सकता :mapहै और :setएक फाइल करने के लिए सेटिंग्स। :help mkexrcविवरण के लिए देखें।


4

आप इस तरह से अपने पर कर सकते हैं ~/.vimrc

:let @a="iHello World!\<CR>bye\<Esc>"

नोट: आप जैसे विशेष कुंजी का उपयोग करने में सक्षम होने के लिए दोहरे उद्धरण चिह्नों का उपयोग करना चाहिए \<this silly example>

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.