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.