2010-07-13 11 views
19

विम में, मैं आमतौर पर कुछ बार आदेशों की श्रृंखला को दोहराना चाहता हूं। कहो, मैं 5 लाइनों टिप्पणी करना चाहते हैं, मैं का प्रयोग करेंगेविम पर कुछ समय कुछ क्रिया दोहराने के लिए कैसे?

I//<Esc>j 
.j.j.j.j 

वहाँ पिछले "जम्मू" भाग में कई बार दोहराने के लिए कोई तरीका है?

+1

आपका मतलब '5',' j' जैसा है? –

+0

यदि यह प्रत्यक्ष प्रश्न नहीं है, तो यह आपकी आवश्यकताओं के बारे में एक विस्तृत उत्तर है। आप यहां क्या कर रहे हैं कोड की 5 लाइनों पर टिप्पणी कर रहा है। यदि यह आपकी एकमात्र आवश्यकता है, तो आपको एनईआरडी कमेंटर ऐड-ऑन का उपयोग करना चाहिए। यह ऐड आपको '5 \ cc' टाइप करने की अनुमति देता है, जो वर्तमान लाइन और कोड की 4 निम्नलिखित पंक्तियों पर टिप्पणी करता है। '5 \ cs' वही करेगा, लेकिन' // 'लाइन टिप्पणियों को जोड़ने का प्रयास किया जाएगा, यह आपकी लाइनों को अवरुद्ध करने के लिए'/* 'और' */'जोड़ देगा। अधिक बहुमुखी। – cartbeforehorse

उत्तर

27

ऐसा करने का एक तरीका है मैक्रो को अपना कुंजी अनुक्रम असाइन करना, फिर मैक्रो को @@ रन-एंड-मैक्रो कमांड के बाद चलाएं। उदाहरण के लिए:

[email protected]@@ 

क्या आप जानते हैं कि कितनी बार आप मैक्रो दोहराना चाहते हैं, तो आप [email protected]@ या जो कुछ भी उपयोग कर सकते हैं।

+0

दिलचस्प बात यह है कि मुझे '@@@@@@@@' और '4 @@' के लिए अलग-अलग परिणाम मिलते हैं ... – Alex

+0

8 साल पुराना उत्तर और यह अभी भी काम करता है। विम की शक्ति के लिए एक प्रमाण पत्र। –

3

अपने विशेष उदाहरण के लिए। आप (ऐसा करने के लिए और अगली 5 लाइनें) या एक दृश्य ब्लॉक (हिट वी, फिर इच्छित टेक्स्ट का चयन करें) के बाद :%s#^#//# का उपयोग कर सकते हैं।

+0

आप ": s #^# // # 5" का उपयोग भी कर सकते हैं (रेखा गणना अंत में है)। – Neil

2

यह करने के लिए एक और तरीका है कि सीमा पर निशान सेट और प्रतिस्थापन को चलाने के लिए है:

ma 
jjjj 
mb 
:'a,'bs,^,// ,
8

अपने विशिष्ट उदाहरण के बारे में, मैं दृश्य ब्लॉक मोड (Ctrl-v के साथ पहुँचा) का उपयोग कर कई ऑनलाइन प्रविष्टि करने के लिए पसंद करते हैं। उदाहरण के लिए, अगर मैं निम्नलिखित लाइनों था:

This should be a comment. 
So should this. 
This is definitely a comment. 
Is this a comment? Yes. 

मैं शीर्ष पंक्ति में शीर्ष पहले वर्ण के लिए जाना चाहते हैं, हिट Ctrl-v, दृश्य ब्लॉक मोड में प्रवेश (शायद 3j का उपयोग कर नीचे ले जाने के अंतिम पंक्ति पर नेविगेट करने 3 लाइनों, हो सकता है 4g का उपयोग कर सीधे 4 लाइन के लिए हो सकता है जाने के लिए, या बस G अंत जाने के लिए), तो टाइप करें I// <esc> एक ही बार में सभी लाइनों पर टिप्पणी डालने के लिए:

// This should be a comment. 
// So should this. 
// This is definitely a comment. 
// Is this a comment? Yes. 

इसके अलावा, वहाँ एक बहुत आसान टिप्पणीकर्ता/अन-टिप्पणीकर्ता प्लगइन जो कई भाषाओं का समर्थन करता है here। टिप्पणियों को मैन्युअल रूप से डालने/हटाने से आसान है।

+0

मैं इसका उपयोग करता हूं: http://vim.sourceforge.net/scripts/script.php?script_id=1173 बहुत अच्छा। – ThePosey

+0

हम्म, यह 'Ctrl-V' विधि मेरे लिए काम नहीं करती है ... केवल पहली पंक्ति पर आवेषण करता है। शायद ऐसा इसलिए है क्योंकि मैं अभी भी 7.2 पर हूं ... – weronika

+0

@weronika क्या आप 'gvim' हैं? – isomorphismes

13

आप उन पंक्तियों का चयन कर सकते हैं जिन्हें आप दोहराना चाहते हैं, :normal! . टाइप करें ताकि प्रत्येक पंक्ति पर . का उपयोग कर सकें। क्योंकि आप एक दृश्य चयन के साथ शुरू कर दिया, यह इस तरह लग रही समाप्त होता है:

:'<,'>normal! . 

हालांकि, अगर आप जोड़ रहे हैं और बहुत // टिप्पणियों को निकालने, आप निम्न मैपिंग उपयोगी लग सकते:

" add // comment with K 
noremap K :s,^\(//\)\=,//,e <BAR> nohls<CR>j 
" remove // comment with CTRL+K 
noremap <C-K> :s,^//,,e <BAR> nohls<CR>j 

आप 5 लाइनों पर टिप्पणी करने के लिए 5K का उपयोग कर सकते हैं, आप अपनी लाइनों को पहले चुनने के लिए विजुअल मोड का उपयोग कर सकते हैं, या आप K को हथौड़ा कर सकते हैं जब तक कि आप अपनी इच्छित चीज़ों पर टिप्पणी नहीं कर लेते।

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