gvim -c ve argdo ile kullanım için d / ^ Mark'ın eşdeğeri


1

Zamanımın çoğunu Windows 8'de geçiriyorum ve gvim -cbaştan sona bir yedek olarak kullanıyorum. Sanırım Cygwin ile baş başa çıkabilirim, ancak umarım bunu birlikte yapabilirim gvim -c.

Sekmeyle ayrılmış .txt dosyalarının bir dizini var ve bazılarının kaldırmak istediğim bir başlığı var (aşağıdaki gibi).

Definition of the Ultimate Owner :                                                                                                                                                  
- minimum percentage that must characterize the path from a subject company up to its Ultimate owner : 25.01%                                                                                                                                                   
- At least one of its shareholders must be known and it cannot own more than 25.01%                                                                                                                                                 

Mark     Company name ... 

Ben kullanacağı bir gvim oturumda başlığını kaldırmak için d/^Mark, sonra :wq. Ama bunlar yüzlerce var, bu yüzden kullanmak istiyorum gvim -cve argdo. Bunu çok yapıyorum s//, şöyle bir şey söyle gvim -c "argdo %s/foo/bar/ge | wq" *.tex.

İlk düşüncem şuydu gvim -c "d/^Mark | wq" *.txt, ama bu işe yaramıyor çünkü /eski bir emir değil.

Eski bir eşdeğer var mı d/^Markben kullanabileceği gvim -cve argdo?

Yanıtlar:


2

:d[elete]Bir aralıkla hazırlanmış komutu istiyorum :

:[fromline],[toline]d

Aralıklar mutlak satır sayıları ile sınırlı değildir: arama da kullanılabilir:

:1,/bar/d

1. satır ile ilk satır arasındaki tüm satırları siler bar.

Aşağıdaki komut satır 1 ile ilk satırın üzerindeki satır arasındaki her satırı siler bar:

:1,/^bar/-1d

İmleci hareket ettirmeden önce başka komutları geçmediğinizi varsayarsak, birkaç karakter çıkarabiliriz:

  • yeni bir tampon açmak beri mevcut satır, aralığın ilk parçanın eksik olması durumunda kabul edilir ve biz kaldırabilir imleci hareket etmedi 1,

  • için ofset varsayılan -olan 1bu ofset beri biz son bırakabilir kullanın 1çok dışarı. Komut olur:

    :, / ^ Bar / -d

Yukarıdaki tuğlalardan yapılmış, aşağıdaki komut çalışması gerekir:

$ gvim -c "argdo ,/^Mark/-d | wq" *.txt

Bir sorun buldum Ne zaman Markilk sırada, ilk sütun, bu şimdiye başlık kaybetmek böylece ilk satırı siler. Bunun için bir çözüm var mı? Teşekkürler.
— Richard Herron,

Önerilen çözüm, sorunuzdaki snippet için çalışıyor. Daha genel bir çözüm istiyorsanız, ilk satırın numarasını kontrol eden ^Markve buna göre davranan bir işlev yazmanız gerekir .
— romainl,
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.