Saya telah diyakinkan (di Stack Overflow) untuk menggunakan bash kesayangan saya dalam mode vi. Sejauh ini saya terbiasa dengan itu dan saya menyukainya.
Namun saya benar-benar kehilangan satu fitur: Dalam emacs-mode, Anda dapat memasukkan parameter terakhir dari perintah sebelumnya dengan menekan "ESC." (Yaitu, tekan pelarian diikuti oleh.)
Apakah ada ikatan standar untuk memasukkan parameter terakhir dalam mode-vi? Saya tidak dapat menemukan satu dan saya benar-benar kehilangan perintah ini ...
bindkey "\e." insert-last-word
history-search-backwards
sangat berharga bagi pengguna baris perintah yang serius.Ada (vi-yank-arg), secara default dipetakan ke "_". Itu harus melakukan apa yang Anda inginkan (dalam mode perintah).
sumber
Tidak persis sama, tetapi dalam mode mana pun Anda dapat mengetik
!$
, dan itu akan diganti dengan kata terakhir dari perintah sebelumnya. Temukan lebih banyak hal seperti itu di manual .sumber
File ~ / .inputrc dapat mengkonfigurasi key-map (Anda dapat membuatnya secara manual jika tidak dapat ditemukan). Tambahkan perintah berikut ke ~ / .inputrc :
~ ~ .Inputrc saya adalah:
Anda dapat menemukan detail tentang readline dan di
bind -p
sini: http://linux.about.com/library/cmd/blcmdl3_readline.htmDan beberapa informasi tentang keyblindings Vi di bash dan Readline VI Editing Mode Cheat Sheet
sumber
Di dalam .bashrc Anda, tambahkan ini:
Ini akan mengembalikan perilaku default tidak hanya ESC-dot - tetapi juga Ctrl-A, Ctrl-E, Ctrl-W dan Ctrl-L. Karena itu Anda dapat menikmati mode-bash normal dan tetap menggunakan pintasan yang Anda kenal dan sukai. Jika Anda memerlukan lebih banyak tindakan, cukup centang "man bash" untuk menemukan nama tindakan readline yang Anda butuhkan (seperti "clear-screen", "end-of-line", dll).
sumber
Anda dapat menggunakan
$_
untuk merujuk ke argumen terakhir dari perintah sebelumnya.Kerugiannya adalah:
Anda tidak dapat memverifikasi sebelum menekan Enter bahwa benda yang dimasukkan adalah benda yang ingin Anda masukkan.
Jika Anda menggunakan PROMPT_COMMAND atau jebakan DEBUG (saya tidak yakin yang mana, yang menyebabkan masalah; Saya memiliki keduanya di .bashrc saya) untuk melakukan hal-hal mewah seperti memasukkan perintah yang berjalan ke dalam judul xterm, ia akan musnah
$_
.sumber