2013-01-08 5 views
12

में मिलान अवधि के साथ लाइन में शामिल होना मुझे यकीन है कि यह आसान है, मुझे बस एक अक्षर या दो याद आ रहा है।वैश्विक रूप से विम

मुझे फ़ाइल में किसी विशेष शब्द की खोज करने की आवश्यकता है, और जब मुझे लगता है, तो मुझे उस पंक्ति में कुछ जोड़ना होगा। और मैं मैच के साथ हर पंक्ति के लिए ऐसा करना चाहता हूं।

यह एक बार करने के लिए, मैं यह कर सकता:

/Thing to find/s/$/ Stuff to append/ 

आसान। और अगर मेरी "खोजने के लिए बात" पंक्ति के अंत में थे मैं ऐसा कर सकता है:

%s/\(Thing to find\)$/\1 Stuff to append/ 

हर मिलान लाइन

पर एक ही बात करने के लिए लेकिन यह कैसे मैं हर पर पहली बात करते हो लाइन?

मुझे लगता है मैं

%s/\(Thing to find.*\)$/\1 Stuff to append/ 

कर सकता है लेकिन उस अनाड़ी लगता है और यह और अधिक जटिल हो जाएगा अगर बात को खोजने के लिए एक लाइन एक बार से अधिक पर थे।

मुझे लगता है कि हर जगह मेरी पहली खोज करने का एक तरीका होना चाहिए, लेकिन मुझे Google को संक्षिप्त संक्षिप्त विवरण लिखने में परेशानी हो रही है।

तो शक्तिशाली स्टैकर्स, कोई भी मुझे दो बाइट समाधान के साथ थप्पड़ मारना चाहता है?

उत्तर

24

:g// आदेश आप जो खोज रहे हैं है - यह एक पैटर्न मिलान प्रत्येक पंक्ति पर एक कमांड चलाता है:

:g/Thing to find/ s/$/ Stuff to append/ 
+1

ओह तुम च-इंग मुझे मजाक कर रहे हैं। मैंने कोशिश नहीं की? मुझे देखने दो। –

+7

हेड, डेस्क से मिलें। –

+0

यह पूरी तरह से काम करता है। धन्यवाद। क्या मैं इसे सोमवार का नाटक कर सकता हूं? –

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