belirli bir satırdan dosyanın sonuna kadar bir kalıpla eşleşen satırları silme


10

İçinde çok sayıda yorum bulunan bir dosyam varsa ve satır 3'ten dosyanın sonuna kadar tüm yorumları silmek istiyorum, bunu yapmanın en iyi yolu nedir?

Sıkıştım, çünkü ilk denediğim şey istediğimi yapmıyor gibi görünüyor:

:3,$/^#/d

Deseni aramak ve 3'ten dosyanın sonuna kadar olan satırları silmek yerine, 3'ten kalıba uyan bir çizgiye kadar tüm satırları siler ve sonra durur.

Öyleyse bir ex komutunu bir dizi satıra nasıl uygularım. Bu durumda bir dosyanın sonuna kadar, ancak bir işarete veya 10 ve 20 satırları veya diğer aralıklar arasında yapsaydım farklı olur muydu?

Yanıtlar:


15

Bunun için :globalkomutu kullanın :

:3,$g/^#/d

Sen hatlarına uygulayabilirsiniz değil bir desen eşleştirme:

:3,$g!/^#/d

Tam kapsamlı mekanizmayı onunla kullanabilirsiniz (bkz. :help :range):

:.,/#define/+3g/^#/d

Ve herhangi bir komutla kullanabilirsiniz:

:3,$g/^#/s/foo/bar/g

Vim'deki en güçlü komutlardan biri, lütfen :help :globalayrıntılar için bakın.


:3,$v/foo/dBir kalıpla eşleşmeyen çizgiler için de kullanabilirsiniz . :h vglobal
vappolinario
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.