Bagaimana menjalankan perintah Unix dari dalam Vim?

77

Bagaimana saya bisa menjalankan perintah Unix saat saya berada di dalam vim?

funk-shun
sumber

Jawaban:

103

Pergi ke mode perintah Esc, lalu jalankan :!unix_command. Apa pun yang dijalankan dari :prompt yang dimulai dengan bang !akan dijalankan sebagai perintah shell unix. Anda akan ditampilkan output dan diizinkan untuk menekan tombol untuk kembali ke pekerjaan Anda di vim.

Jika Anda memiliki teks yang dipilih dalam mode visual dan ingin mengirimkannya KE perintah sebagai STDIN, tekan !!dan masukkan perintah Anda. Hasil perintah akan menggantikan teks yang telah Anda pilih.

Caleb
sumber
14
Juga, !! tanpa teks yang dipilih akan membiarkan Anda menjalankan perintah dan kemudian memasukkan hasilnya pada posisi kursor Anda saat ini - tidak perlu mengirim barang ke STDIN dan menggantinya jika Anda tidak perlu / ingin.
Kromey
4
juga, jika Anda hanya ingin meletakkan output dari suatu perintah dalam dokumen Anda, lakukan saja :r!unix_command. Ini berguna untuk perintah sepertidate
Yab
2
Anda juga dapat mengeksekusi beberapa baris buffer vi Anda dengan shell (atau penerjemah apa pun) dan meminta mereka digantikan oleh hasil eksekusi. misalnya: :10,20!shatau, bentuk garis bertanda,'a,'b!sh
jlliagre
1
Hal lain yang menurut saya perlu diperhatikan adalah bahwa ini tergantung pada OS yang Anda gunakan. Jika Anda menggunakan Windows, itu akan menjalankan perintah shell Windows. Banyak orang yang membaca ini sudah tahu itu, tetapi bagi orang-orang yang datang dari Google, saya pikir itu layak disebut.
Andrew
25

Dari cermin bantuan VIM :

:shell        :sh[ell]        start a shell
:!            :!{command}     execute {command} with a shell
Jay Elston
sumber