2013-01-20 32 views
5

में एक स्ट्रिंग युक्त पूर्ण शब्दों को निकालें, यदि वे एक विशिष्ट स्ट्रिंग रखते हैं तो मैं लाइन से शब्दों को निकालने का प्रयास कर रहा हूं।विम

host-a, host-b, host-d 

इसी तरह, मैं, रेखा के आधार द्वारा एक लाइन पर इस लागू करने के लिए नहीं की जरूरत है:

host-a, host-b, host-c+test, host-d, host-e+test 

मैं के साथ परिणाम की कुछ भी है कि +test शामिल दूर करने के लिए, चाहते हैं: यहाँ पाठ का एक उदाहरण है फ़ाइल में सभी लाइनों पर। यह एक मैक्रो के भीतर इस्तेमाल किया जा रहा है।

मैं यह कैसे कर सकता हूं?

+0

आप भी अल्पविराम को दूर करना चाहते हैं? – fge

+0

हां। जैसा कि मेरे उदाहरण में दिखाया गया है। – Jericon

उत्तर

4

ऐसा कुछ, हो सकता है?

:%s/\<[-a-z]\++test\>//gc 

यदि आप इसे प्रतिस्थापित करना चाहते हैं तो यह प्रत्येक मैच के लिए पूछेगा। संकेत: set hlsearch आपको मैचों दिखाएगा।

आप भी अल्पविराम, तो निकालना चाहते हैं:

%s/\(,\s\+\)\?\S\++test\>//gc 
+0

'-' शब्द सीमा के रूप में ध्वनि, तो आपको या तो इसे बंद करना होगा या किसी अन्य समाधान का उपयोग करना होगा –

+0

आह, हाँ, यह सच है। फिक्स्ड। – fge

+0

पहला वाला काम कर रहा है, लेकिन दूसरा नहीं है। यदि उपस्थित हो तो मुझे अल्पविरामों को हटाने की आवश्यकता है (यानी, यदि आइटम लाइन में पहला नहीं है)। – Jericon