Saya jenis pemula Vim. Saya ingin mengirim isi buffer saat ini ke stdin dari perintah eksternal (katakanlah mail). Tujuan akhir saya adalah mengatur jalan pintas untuk mengirim email dengan cepat dari buffer Vim saat ini. Saya menduga ini harus menjadi hal yang sepele, tetapi saya tidak dapat menemukan cara untuk mengirim buffer Vim ke perintah eksternal. Terima kasih sebelumnya.
94
STDIN
perintah shell: Pipa ke shell dan menerima keluaran pada baris info dan Mengganti teks asli yang dipilih dengan keluaranJawaban:
Anda dapat menggunakan
:w !cmd
untuk menulis buffer saat ini ke stdin dari perintah eksternal. Dari:help :w_c
:Perintah terkait adalah
:%!cmd
yang melakukan hal yang sama dan kemudian menggantikan buffer saat ini dengan output perintah. Jadi:%!sort
akan memanggil perintah sortir eksternal untuk mengurutkan buffer saat ini di tempat.sumber
:'<,'>!python -mjson.tool
atau:%!python -mjson.tool
:%!gofmt
tanpa yang terakhir%
, karena itu akan menyebabkannya menggunakan versi tersimpan (yang mungkin berbeda dari buffer saat ini)u
untuk undoBerikut adalah contoh cara mengirim buffer saat ini ke stdin eksternal dari baris perintah:
Ini berguna untuk tujuan pembuatan skrip.
Untuk trik baris perintah lainnya, periksa:
sumber