Saya menggunakan vim untuk skrip bash. masalahnya kadang-kadang saya tidak ingin membuat file baru, membuatnya dapat dieksekusi, menjalankannya dan kemudian menghapusnya. Maksud saya skrip yang akan digunakan hanya sekali.
Misalnya saya buka vim dan ketik ini:
#!/bin/bash
ll | while read line
do
echo $line
done
Saya tidak menyimpan file ini, saya hanya menggunakan vim untuk menyederhanakan bash-scripting. Saya tahu saya bisa menjalankan perintah bash via !
in vim. Tapi bagaimana dengan mengeksekusi semua yang ada di buffer?
command-line
external-command
bash
St.Antario
sumber
sumber
<C-x><C-e>
dan menjalankannya di tulis, kan?set -o vi
, Anda dapat menekanEsc-v
untuk mengedit baris perintah di vi. KemudianEsc-:wq
untuk mengeksekusi.Jawaban:
Saya menulis jawaban yang cukup luas tentang hal ini di stack-overflow . Ide dasarnya adalah bahwa karena perintah tulis adalah tentang menulis tidak menyimpan , Anda dapat menulis teks dalam buffer Anda ke dalam program eksternal, seperti python atau bash. Dalam kasus Anda, Anda ingin melakukan sesuatu seperti:
atau
Perintah-perintah ini secara harfiah hanya menulis teks dalam buffer Anda langsung ke dalam program yang Anda tentukan
!
, yang nyaman karena Anda tidak perlu menyimpan file. Tentu saja, Anda juga dapat melakukan sesuatu seperti:yang menyimpan file Anda dan kemudian menjalankannya sebagai skrip bash. Anda dapat memilih mana yang lebih masuk akal bagi Anda.
sumber
:w !bash -a test
tetapi mendapat "tidak dapat menjalankan file biner"test
file kosong , itu berjalan dengan baik untuk saya. Apa yang seharusnya dilakukan oleh perintah, dan apa yang seharusnyatest
berisi?test
berisi?test
hanyalah sebuah argumen untuk-a
.test
seharusnya menjadi file. Saya tidak begitu yakin apa yang harus saya lakukan. Jika Anda mencoba sesuatu yang kompleks, mungkin lebih baik menyimpannya dalam file. Mungkin patut ditanyakan sebagai pertanyaan terpisah sehingga Anda dapat memberikan lebih banyak detail. Ini mungkin juga akan menjadi pertanyaan yang bagus untuk Unix dan LinuxSkenario: Anda bekerja di bash shell. Pertama, pastikan mode edit lokal adalah vi:
Sekarang, ketika Anda menemukan diri Anda mengerjakan perintah panjang seperti berikut ini, tekan Esc+ v.
Ini akan memuat perintah Anda ke
vi
sesi sementara . Sekarang Anda dapat mengeditnya sesuai keinginan, dan bahkan menambahkan perintah lain ...Setelah selesai mengedit, ketik Esc
:wq
dan perintah akan dieksekusi, misalnya:sumber
Esc
kunci;)Esc
kunci !? Bagaimana mereka bisa menggunakan Vim?Esc
kunci ketika menjalankan Vim di terminal.