Eşleşen satırda shell komutu (vim: global `: g` veya`: v` komutunu shell komutu ile birleştirin)


0

Bir kabuk komutu kullanmak istiyorum ( fmt bu durumda) bir regex'in her (eşleşmeyen) eşleştirme satırında bir dosyada çalışmak. Bunu içinde yapmayı tercih ederim vim! Yine de, vim'in sunduğu için saf bir kabuk / bash / zsh çözümü için de açığım. :! yanı sıra.

Birleştirmek mümkün mü

:g/pattern/[cmd]

eşleşen satırlarda yürütülen bir kabuk komutu ile? Gibi bir şey

:g/pattern/!fmt -w 72

çalışmıyor.

Yanıtlar:


1

Cevabı buldum! Kullanabilirsiniz

:g!/^ /:.!fmt -w 40

veya olmadan ! Bulunan satırlarda bu kabuk komutunu kullanmak için. Ancak bu, yalnızca tek satırlarda çalışacaktır, bu nedenle satır sonlarını kaldırmaz, sadece yenilerini ekler. Birisi bunu iyileştirebilirse, nasıl göndereceğinizi bildirmekten çekinmeyin :)

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.