में लाइन जोड़ें, मैं एक कॉन्फ़िगरेशन फ़ाइल संपादित करने की कोशिश कर रहा हूं और जब भी एक विशिष्ट स्ट्रिंग मिलान हो जाती है तो कोड की एक विशिष्ट पंक्ति (एक नई लाइन पर) जोड़ना चाहती है ... जो कुछ मैंने खोजा है खोज और प्रतिस्थापन के लिए, मैं खोज और संलग्न करने की तलाश में हूं ...स्ट्रिंग के लिए खोजें और vi/vim
13
A
उत्तर
13
vim
\r
नई लाइन है।
:g/specific string/s/.*/&specific line of code
g
आदेश specific string
युक्त सभी लाइनों को हासिल करेगा और उसके बाद उन पंक्तियों को s
स्थानापन्न आदेश लागू होते हैं: तो तुम यह मैं क्या कर सकता है इस
%s/search string/&\rnew code/
0
की तरह कुछ कर सकते हैं। इस समस्या के लिए s
आदेश प्लस इसकी सामग्री के साथ पूरी लाइन specific line of code
HTH
13
व्यक्तिगत रूप से
विकल्प, मैं का उपयोग कर लगता है कि ": जी" कमांड शायद तुलना में बेहतर है, "एस"।
:g/key/norm owhat ever you want
कर देगा पाठ:
foo
bar
key
foo2
bar2
key2
blah
रहे हैं:
foo
bar
key
what ever you want
foo2
bar2
key2
what ever you want
blah
आप प्रतिमान रेखा से ऊपर नई लाइन जोड़ना चाहते हैं, सिर्फ छोटे 'ओ' के लिए बदल "ओ"।
स्पष्टीकरण के लिए। विकल्प का उपयोग करते समय एम्पर्सेंड इसे जोड़ता है? या इसमें उस रेखा को शामिल किया गया है जिसे आप बदल रहे हैं ताकि आप "% s/search string/\ rnewcode और /" के साथ प्रीपेड कर सकें? – VolatileStorm
@ जयपाल '% s /^.* खोज स्ट्रिंग। * $/& \ Rnew code /' बेहतर हो सकता है? आप मूल रेखा तोड़ सकते हैं। उदाहरण के लिए, यदि रेखा "खोज स्ट्रिंग = xyz" या "foosearch string = barsearch string" – Kent
'\ r' विकल्प स्ट्रिंग में नई पंक्ति है। एक खोज पैटर्न में \ n' नई लाइन है। – Benoit