2013-02-21 12 views
12

में पैटर्न के बाद लाइन ब्रेक जोड़ना मेरे पास एक सीएसएस फ़ाइल है और मैं प्रत्येक } के बाद एक खाली रेखा जोड़ना चाहता हूं।वीआईएम

मैं इसे विम में कैसे कर सकता हूं?

उत्तर

23

एक प्रतिस्थापन अच्छी तरह से काम करेगा।

:%s/}/\0\r/g 

पूरे मैच \0 और एक नई लाइन चरित्र \r साथ } बदलें।
या

:%s/}/&\r/g 

कहाँ & भी पूरे मैच के लिए एक विकल्प है, मेरी राय में थोड़ा अजीब लग रहा है, हालांकि। विम गोल्फर्स इसे पसंद करते हैं क्योंकि यह उन्हें एक कीस्ट्रोक बचाता है :)

\0 या & प्रतिस्थापन के प्रतिस्थापन भाग में एक विशेष चरित्र के रूप में कार्य करता है। प्रतिस्थापन के दौरान प्रतिबिंबित होने वाली पूरी स्ट्रिंग प्रतिस्थापन में \0 या & वर्ण को प्रतिस्थापित करती है।

हम एक अधिक जटिल खोज के साथ इस प्रदर्शन कर सकते हैं और उन्हें बदल दें -

Which witch is which? 

एक प्रतिस्थापन लागू करें -

:s/[wW][ih][ti]ch/The \0/g 

देता है -

The Which The witch is The which? 
+4

इस तरह के एक शुरुआती प्रश्न के लिए, एक स्पष्टीकरण निश्चित रूप से मदद करेगा: '\ 0' (छोटा होगा 'और'' मैच फिर से सम्मिलित करेगा, '\ r' एक नई लाइन के लिए बचने का अनुक्रम है (आमतौर पर एक प्रतिस्थापन में, आमतौर पर यह '\ n' है)। –

6

जवाब :%s/}/}\r/ मुझे लगता है कि है।

3
:%s/pre/cur\r/g 

%: पूरे बफर पर काम करें।

pre (पिछला पैटर्न): कौन सा पैटर्न बदलना होगा।

cur (वर्तमान पैटर्न): जिसके द्वारा पिछले पैटर्न को बदला जाएगा।

\r: नई लाइन।

g: रेखा पर प्रत्येक मैच के लिए दोहराएं (डिफ़ॉल्ट केवल पहले को प्रतिस्थापित करना है)।