How to delete empty lines in multi-ranges in Vim -


मुझे एक टेक्स्ट फ़ाइल मिलती है:

  & lt; p & gt; ... & lt; / p & gt; & LT; पूर्व & gt; ... ... ... ... & lt; / pre & gt; & Lt; p & gt; ... & lt; / p & gt; & Lt; p & gt; ... & lt; / p & gt; & Lt; p & gt; ... & lt; / p & gt; & LT; पूर्व & gt; ... ... ... & lt; / pre & gt; & Lt; p & gt; ... & lt; / p & gt;  

ध्यान दें: [पूर्व] ... [/ पूर्व] के बीच कुछ खाली पंक्तियां हैं।
मुझे चाहिए उन्हें हटाने के लिए।
लेकिन, मैं उन लोगों को [p] ... [/ p] में रखना चाहता हूं
टेक्स्ट फ़ाइल बन जाती है:

  & lt ; p & gt; ... & lt; / p & gt; & LT; पूर्व & gt; ... ... ... ... & lt; / pre & gt; & Lt; p & gt; ... & lt; / p & gt; & Lt; p & gt; ... & lt; / p & gt; & Lt; p & gt; ... & lt; / p & gt; & LT; पूर्व & gt; ... ... ... & lt; / pre & gt; & Lt; p & gt; ... & lt; / p & gt;  

मैं उन्हें स्थित करने के लिए नीचे सीएमडी का उपयोग करता हूं:

  / & lt; pre & gt; \ n \ zs \ _। \ {-} \ ze \ n & lt ; \ / pre & gt;  

लेकिन मुझे नहीं पता कि आगे क्या करना है!
मुझे ऐसा करने के लिए एक-पंक्ति-सीएमडी की आवश्यकता है।
कोई भी विचार? धन्यवाद!
सरल, बेहतर!


संपादित करें: धन्यवाद। मैं सिर्फ यह समझता हूं कि मेरे

 : g / & lt; pre & gt; /, / & lt; \ / pre & gt; / s / ^ $ $ \ n //    

आपकी समस्या एक को उजागर करने के समान है।

पहले खुलने वाले टैग को खोजने के लिए (खोज के साथ, "कोई लपेट नहीं" के साथ बुलाया गया), फिर समापन टैग। यह एक सीमा निर्धारित करता है जिस पर आप g / ^ \ s * $ / d _ लागू होंगे।

कुछ पंक्तियों को हटा दिया जाएगा क्योंकि पिछड़े काम करना आसान हो सकता है।

संपादित करें: एक एक लाइनर के रूप में अच्छी तरह से काम करने लगते हैं

  g / & lt; pre & gt; /, / & lt; \ / pre & gt; / s / ^ \ s * $ \ N // g  

Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -