Hataları bastırırken ve Vim'de onay istediğinde satırı silmek için arama modeliyle argdo kullan


4

Win 7'de gVim 7.3.46 kullanıyorum.

Bir model için dosyaları argdoaramak argsve hataları bastırmak ve onaylamak için değiştirirken kullanmak oldukça kolaydır .

:argdo %s/pattern/replace/gec | update

Ancak, deseni içeren tüm satırları silmek istiyorum. Aşağıdakileri kullanıyorum.

:argdo %/pattern/d | update

Ancak hataları gizleyemiyorum veya onay gerektirmiyorum. Bunu yapmanın bir yolu var mı? Teşekkürler!

(Ayrıca, "daha fazla" yı kapatmanın bir yolu var mı? Teşekkürler!)

Yanıtlar:


8

Bazı hataları, komuttan önceki ile bastırabilirsiniz :silent. Bir desen içeren satırları silmek için komuttur :g/pattern/d. Yani aşağıdakiler ne istersen onu yapmalı.

:silent argdo g/pattern/d | update

Görmek

:help :silent
:help :g

"Daha" ı kapatmak için,

:set nomore

Ayrıca bakınız

:help 'more'
:help more-prompt
:help messages

Onaylarla nasıl başa çıkılacağı, neyin onaylanması gerektiğine bağlıdır. !Bir emirden sonra koymak genellikle "Yine de yap" anlamına gelir.


Teşekkürler! s///gecİşlevi alabilmemin bir yolu var mı ? Belki bir şey gibi argdo %s/pattern/^$//gec? Ama bence bu sadece çizgideki içeriği siliyor, bütün çizgiyi değil.
Richard Herron

2
Almak için s///gecbütün bir çizgi silmek için şunu kullanın: %s/.*pattern.*\n//ec. Bu \n, hatta bir DOS dosyası için satır sonu işaretçisiyle eşleşir. gEğer bütün bir çizgi siliyorsanız gerekli değildir.
garyjohn

1
bu çok harika, teşekkür ederim! :set nomore, :arga **/*Ve :argdo execute 'normal gg=G' | wben üzerinde çalıştığım bir proje üzerinde tüm çirkin girintilemeyi sabitler.
Shicholas
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.