Dalam bash, menggunakan mode vi, jika saya menekan Esc,, vbaris perintah saya saat ini dibuka di editor yang ditentukan oleh $EDITOR
dan saya dapat mengeditnya di layar penuh sebelum 'menyimpan' perintah untuk dikembalikan ke shell dan dieksekusi.
Bagaimana saya bisa mencapai perilaku serupa di zsh? Memukul vdalam mode perintah menghasilkan lonceng dan tidak memiliki efek yang jelas, meskipun EDITOR
variabel lingkungan disetel.
edit-command-line
"widget" Anda perlu sesuatu sepertiautoload edit-command-line; zle -N edit-command-line
di salah satu file zsh init Anda (lihat bagian Fungsi ZLE darizshcontrib
dokumentasi ).bindkey -M vicmd v
mengatur.<ESC>
untuk masuk ke mode perintah dari mode insert dan kemudianv
ke mode visual (Meta-v
sama), atau hanyav
jika Anda sudah dalam mode perintah. Jika Anda menggunakan mode Emacs, pengikatan yang khas adalahC-x C-e
.bindkey -M vicmd ' ' edit-command-line
Jika Anda lebih suka ikatan kunci Emacs:
sumber
^x^e
mengikat tampaknya menjadi default dengan arus oh-my-zsh , yang sangat bagus.editor
modul dimuat.Anda dapat menggunakan
fc
untuk mengedit perintah terakhir dalam sejarah. Ini tidak sama dengan mengedit perintah yang sama, tetapi klik cepat pada tombol Enter menjadikan perintah Anda saat ini sebagai perintah terakhir dalam sejarah.sumber
Ini adalah konfigurasi lengkap yang saya tambahkan ke saya
~/.zshrc
untuk mendapatkan perilaku yang sama dari bash:sumber
editor
modul untuk dimuat danvi
atauvim
dipilih untuk mode perintah.