Ini hanya sebagian besar catatan yang menyenangkan tentang bash
dan readline
, tetapi jika Anda mengatur EDITOR
variabel lingkungan Anda vim
, menekan Ctrl+ x+ eakan membuka baris saat ini vim
. Selanjutnya, jika Anda mengetik Meta(Alt/Opt/Esc)+ Ctrl+ e, bash akan melakukan ekspansi di tempat pada baris perintah saat ini, yaitu:
$ echo $EDITOR # Assuming EDITOR was set
dengan Meta(Alt/Opt/Esc)+ Ctrl+ eakan menjadi
$ echo vim # Assuming EDITOR was set
dengan Ctrl+ x+ eakan menjadi
1 echo vim # Assuming EDITOR was set
~
~
/tmp/sometmpbufferfile
Perhatikan bahwa setelah berhenti vim, isi buffer vim dieksekusi pada baris perintah.
Fitur-fitur ini menjadi sangat berguna bagi saya ketika saya ingin melakukan perintah multi-line di bash seperti untuk loop atau program yang membutuhkan pernyataan di sini, dan menyediakan cara yang menarik untuk menyimpan sedikit sejarah baris perintah ke file untuk digunakan nanti.
Jadi untuk menjawab pertanyaan awal, Anda juga bisa menulis,
$ This is an example
dan kemudian tekan Ctrl+ x+ euntuk memuatnya vim
. Anda juga bisa,
$ $(cat /etc/hosts)
dan lakukan Meta(Alt/Opt/Esc)+ Ctrl+ elalu Ctrl+ x+ e, yang akan menempatkan semua file host pada satu baris dan memuatnya vim
(mungkin bukan penggunaan terbaik dari fitur-fitur ini - namun, kegunaan metode ini dapat diekstrapolasi dari beberapa contoh yang dibahas sini).
Perhatikan bahwa saya menganggap bahwa Anda readline
diatur ke emacs
mode. Jika Anda readline
diatur ke vim
mode Anda dapat dengan mudah menemukan binding yang relevan dengan menggunakan perintah:
bind -p
dan mencari edit-and-execute-command
atau shell-expand-line
, yang masing-masing terkait dengan binding Ctrl+ x+ edan Meta(Alt/Opt/Esc)+ Ctrl+ e.
:help stdin
... Sungguh luar biasa seberapa cepat seseorang dapat menemukan jawaban dengan mengajukan pertanyaan mereka tentang dokumentasi bawaan.