Bagaimana cara memodifikasi blok yang dipilih secara visual dengan perintah eksternal?

9

Saya punya file yang terdiri dari dua bagian vertikal. Di sisi kiri, data sudah diformat dan saya tidak ingin mengubahnya. Saya hanya ingin memformat data di sisi kanan. Katakanlah saya punya file dengan garis seperti

foo=bar baz     # Neato       Junk
quux=xyzzy      # Bilbo Baggins Ring

dengan lebih banyak garis seperti itu. Saya hanya ingin memodifikasi teks di sebelah kanan karakter '#'. Saya memilih teks yang saya inginkan dengan ekspresi berikut:

gg
/#
ctrl-v
G
$

tetapi jika saya kemudian mencoba untuk memodifikasinya (katakanlah, dengan :'<,'>!column -t), itu sebenarnya memodifikasi keseluruhan setiap baris. Apa ungkapan yang tepat untuk digunakan untuk hanya memodifikasi bagian yang dipilih secara visual?

kojiro
sumber
2
Anda dapat mencoba vis vis dari Dr. Chip atau plugin NrrwRgn saya . Keduanya harus menanganinya dengan baik.
Christian Brabandt

Jawaban:

6

Anda juga dapat mencoba:

gg
^V
G
t#
d
:%!column -t
gg
P

Dari :h :visual_example:

Saat ini perintah ":" hanya berfungsi pada seluruh baris. Saat Anda memilih bagian dari sebuah baris, melakukan sesuatu seperti ":! Date" akan menggantikan seluruh baris. Jika Anda ingin hanya bagian dari garis yang akan diganti, Anda harus membuat pemetaan untuk itu. Dalam rilis mendatang ":" dapat berfungsi pada sebagian baris.

Lihat juga :h visual-operatorsuntuk detailnya.

Jair López
sumber