2011-01-13 6 views
5

विम में,विम में एकाधिक लाइनों की शुरुआत में एक शब्द कैसे जोड़ें?

मैं सभी पंक्तियों की शुरुआत में एक शब्द कैसे जोड़ूं? मैं इसे अंत में कैसे जोड़ूं?

उदा .. तो मैं

A 
B 
C 
D 

मैं

int A = 
int B = 

आदि के लिए इसे बनाने के लिए करना चाहते हैं ..

उत्तर

11

उपयोग दृश्य ब्लॉक मोड के साथ जा सकते हैं (Ctrl - वी) का चयन करने के स्तंभ आप चाहते हैं, और फिर मैं मारा, वर्ण आप चाहते हैं लिखें और फिर esc दबाएं

तो इस मामले में, आप A पर अपना कर्सर रखें था , Ctrl मारा - वी, D लिए नीचे जाना, मैं और टाइप int (यह केवल जब आप इसे टाइप पहली पंक्ति पर दिखाई देंगे) मारा, और फिर Esc मारा जो उस समय हूँ सभी दृश्यमान रूप से चयनित भागों में डालें लागू करें।

यह दस्तावेज़ में लाइन या लाइन के अंत से पहले दस्तावेज़ में कहीं भी काम करता है।

दृश्य ब्लॉक सम्मिलित

बारे में अधिक जानकारी के लिए :he v_b_I
+1

यह केवल खाली लाइनों के लिए काम करेगा यदि 'वर्चुअलाइज्ड' खाली नहीं है। – Benoit

+0

+1 क्योंकि यह सबसे सामान्य समाधान है। 'V_b_I' –

+0

की बजाय' v_b_A' मदद 'जोड़ने के लिए दिलचस्प है कि' विज़ुअल ब्लॉक 'अलग है' विज़ुअल मोड ' –

2

एक वैश्विक स्थानापन्न करना चाहिए मैं:

:%s/.\+/int & =/ 

इस प्रकार है यह काम करता है: प्रतिस्थापन के दूसरे भाग में (यानि int & = में) एम्परसेंड को पहले भाग में (.*) के साथ प्रतिस्थापित किया गया है। चूंकि .* पूरी लाइन से मेल खाता है, इसलिए प्रत्येक पंक्ति वांछित के रूप में subsituted है।

आप खाली लाइनों है (जिसमें आप किसी भी प्रतिस्थापन के लिए नहीं करना चाहते हैं), तो आपको एक

:%s/^\S\+$/int & =/ 
+0

कि $ 0 हो नहीं करना चाहिए? –

+0

$ 0? यह पर्ल या सी ++ (टीआर 1) – Benoit

+0

$ 0 के लिए शायद एक और नियमित अभिव्यक्ति आधारित भाषा में है। –

7

आप ऐसा कर सकते हैं:

:%s/^/at the beginning/ 
:%s/$/at the end/ 
4

:%s/.\+/int & =

+ खाली लाइनों

2

पर से मेल नहीं खाएगी आप कॉपी करने की जरूरत है बस पहला शब्द, फिर करें:

:%s/^\w\+/int & =/g 

आप खरोज संरक्षित करने के लिए चाहते हैं, तो कार्य करें:

:%s/^\(\s*\)\(\w\+\)/\1int \2 =/g 
संबंधित मुद्दे