2008-09-10 10 views
5

जैसा कि मैं विम के साथ और अधिक विकसित करता हूं, मुझे लगता है कि मैं ग्रहण में "टेम्पलेट्स" के समान उपयोगी कोड के ब्लॉक में प्रतिलिपि बनाना चाहता हूं।विम में कोड भाग और मैक्रोज़ के लिए सबसे अच्छी रणनीति क्या है?

मैं प्रत्येक कोड हिस्सा लिए एक अलग फ़ाइल बनाने के बारे में सोच रहा था और सिर्फ उन्हें

:r code-fornext 

साथ में पढ़ने, लेकिन वह सिर्फ एक तरह से आदिम लगता है। चारों ओर घूमते हुए मुझे विम मैक्रोज़ का उल्लेख किया गया है और "मानचित्र" के बारे में कुछ पता है लेकिन कुछ भी सरल नहीं लगता है।

जो मैं देख रहा हूं वह उदा। ग्रहण के "टेम्पलेट्स" की तरह कुछ तो मैं इसके बीच में बैठे कर्सर के साथ कोड कोड में पॉप करता हूं। या जेडिट का "मैक्रोज़" जो मैं जटिल रेखाओं को रिकॉर्ड कर सकता हूं और एक पंक्ति पर नामांकन कर सकता हूं, तो मैं इसे 10 अन्य लाइनों पर फिर से चला सकता हूं, इसलिए यह वही होता है।

क्या इन दोनों कार्यक्षमताओं की तरह कुछ भी है?

उत्तर

8

विम में मैक्रोज़ रिकॉर्ड करने के लिए, कमांड मोड में, q कुंजी और दूसरी कुंजी जिसे आप मैक्रो असाइन करना चाहते हैं। मैक्रोज़ को तुरंत फेंकने के लिए मैं आमतौर पर qq हिट करता हूं और मैक्रो को q कुंजी पर असाइन करता हूं। एक बार जब आप रिकॉर्डिंग मोड में हों, तो अपने कुंजी स्ट्रोक के माध्यम से चलाएं। जब आप पूरा कर लें तो सुनिश्चित करें कि आप कमांड मोड में वापस आ गए हैं और रिकॉर्डिंग को रोकने के लिए q दबाएं। फिर मैन्युअल रूप से मैक्रो को फिर से चलाने के लिए, आप @q टाइप कर सकते हैं। पहले से चलाने मैक्रो आप @@ टाइप कर सकते हैं या इसे 10 बार आप [email protected] या [email protected], आदि टाइप कर सकते हैं चलाने के लिए ..

सारांश में फिर से चलाने के:

+----------------------------------+-------------------------------------+ 
| start recording a macro   | qX (X = key to assign macro to)  | 
+----------------------------------+-------------------------------------+ 
| stop recording a macro   | q         | 
+----------------------------------+-------------------------------------+ 
| playback macro     | @X (X = key macro was assigned to) | 
+----------------------------------+-------------------------------------+ 
| replay previously played macro | @@         | 
+----------------------------------+-------------------------------------+ 

कोड मात्रा के संबंध में, मैं पाया है और स्निपमैट नामक एक विम प्लग-इन का उपयोग करना शुरू किया, जो टेक्स्टमैट की स्निपेट सुविधा की नकल करता है। आप यहाँ में प्लग प्राप्त कर सकते हैं:

http://www.vim.org/scripts/script.php?script_id=2540

और (एक छोटी प्रयोग में यह दिखा स्क्रीनकास्ट के साथ) snipMate का उपयोग करने पर एक संक्षिप्त लेख:

http://www.catonmat.net/blog/vim-plugins-snipmate-vim/

आप इस लगता है आशा है कि उपयोगी!

+0

@@ केवल संस्करण 7 के लिए काम करने लगता है, लेकिन मैं संस्करण 6 में @q साथ यह कॉल कर सकते हैं, बहुत उपयोगी है, धन्यवाद! –

0

vim.wikia पर, आपको category of tips स्निपेट और संक्षेप में विस्तार के लिए समर्पित मिलेगा। आपको प्लगइन की एक सूची भी दिखाई देगी जो जटिल स्निपेट/टेम्पलेट्स-फाइलों की परिभाषा को कम करती है।

HTH,