यह एक बहुत ही उत्सुक अनुरोध है क्योंकि मैक्रो रिकॉर्ड करने के लिए कोई "मोड" नहीं है। कुछ डॉक्स के माध्यम से खुदाई करने के बाद मैंने निम्नलिखित में पायाusr_10
आप पहली पंक्ति के पहले चरित्र पर जाकर शुरू करते हैं। अगला आप निम्नलिखित कमांड निष्पादित करते हैं:
qa रजिस्टर में मैक्रो रिकॉर्ड करना शुरू करें a ।
^ लाइन की शुरुआत में जाएं।
i # में लाइन की शुरुआत में "स्ट्रिंग # किंकर्ड डालें" शामिल हैं।
$ पंक्ति के अंत में जाएं।
"पंक्ति के अंत में वर्ण दोहरा उद्धरण चिह्न (") जोड़ें।
j अगली पंक्ति पर जाएँ।
Q मैक्रो रिकॉर्ड करना बंद करें।
मेरे लिए स्टैंडआउट बात "रजिस्टर में मैक्रो दर्ज करना शुरू करें" के बारे में लाइन थी
चूंकि प्रत्येक मैक्रो डिफ़ॉल्ट रूप से एक रजिस्टर में सहेजा जा रहा है, मैं उम्मीद कर रहा था कि हम इसे :reg
सूची में देख पाएंगे । यह पता चला है कि यह एक आकर्षण की तरह काम करता है!
उदाहरण:
सामान्य मोड में: qaisomething<Esc>
और अंदर :reg
हम प्रवेश देखते हैं!
"a isomething^[
उस ज्ञान के साथ आपको रजिस्टरों पर "जासूसी" करने में सक्षम होना चाहिए, यह पुष्टि करने के लिए कि एक मैक्रो रिकॉर्ड किया जा रहा है (प्रत्येक रिकॉर्डिंग पर एक नामित रजिस्टर का उपयोग करें [मैप q
हमेशा एक ही रजिस्टर का उपयोग करने के लिए (या ऐसा कुछ))
यदि आप समस्याओं में भाग लेते हैं तो मुझे बताएं और मैं आपकी मदद करने की कोशिश करूंगा (क्योंकि यह कार्यक्षमता मेरे लिए भी नई है: D)
संपादित करें
याक के दौरान उपयोग किए जा रहे एक रजिस्टर के मुद्दे को संबोधित करने के लिए, मैं एक विशेष प्रकार के रजिस्टर पर ध्यान देने की सिफारिश करूंगा, जिसका उपयोग आप केवल vimL
आपके लिए लिख रहे हैं (कोई याक कभी रजिस्टर पर लगे होंगे "ay
) ( )
यहाँ :help registers
उपलब्ध रजिस्टरों पर जानकारी का एक सा है
दस प्रकार के रजिस्टर हैं: E354 को पंजीकृत करता है
अनाम रजिस्टर ""
10 नंबर रजिस्टर्ड "0 से" 9
छोटे हटाएं रजिस्टर "-
26 नाम रजिस्टरों "ए टू" जेड या "ए" से "जेड"
केवल तीन ही रजिस्टर ":", ","%
वैकल्पिक बफर रजिस्टर "#
अभिव्यक्ति रजिस्टर "=
चयन और ड्रॉप रजिस्टर "*," + और "~
ब्लैक होल रजिस्टर "_
अंतिम खोज पैटर्न रजिस्टर "/
यह मानते हुए कि आपके पास एक रजिस्टर है जिसे आप अब उपयोग करने जा रहे हैं, यह मुद्दा "मुझे कैसे पता चलेगा कि रिकॉर्डिंग कब बंद हो गई है?"। इस मैं की देखभाल करने के लिए पर एक नज़र था autocmd-event
के लिए CursorHold
; हेल्प डॉक्स में नोट काफी आशाजनक लगता है (मैं यह पता लगाने की कोशिश करूंगा कि मैं सामान्य कर्सर को कैसे अलग कर सकता हूं बनाम निष्क्रिय / गैर-मौजूद घटना जो तब होती है जब आपका रजिस्टर मैक्रो के उद्देश्यों के लिए लिखा जा रहा है)
CursorHold
जब उपयोगकर्ता 'updatetime' के साथ निर्दिष्ट समय के लिए एक कुंजी नहीं दबाता है। तब तक दोबारा ट्रिगर नहीं किया जाता जब तक कि उपयोगकर्ता ने एक कुंजी दबा दी हो (यानी अगर आप कुछ कॉफी बनाने के लिए विम को छोड़ते हैं तो हर 'updatetime' को आग नहीं देता है। :) देखें | CursorHold-example टैग्स का पूर्वावलोकन करने के लिए। यह घटना केवल सामान्य मोड में चालू है। टाइप करने के लिए कमांड तर्क, या ऑपरेटर के बाद एक आंदोलन की प्रतीक्षा करते समय यह ट्रिगर नहीं होता है। रिकॉर्डिंग करते समय CursorHold ईवेंट ट्रिगर नहीं होता है। | क्ष |