Saya menggunakan menu select
perilaku dalam zsh
, yang memanggil menu di bawah kursor di mana Anda dapat melihat berbagai kemungkinan. Opsi .zshrc yang telah saya atur untuk ini
zstyle ':completion:*' menu select=2
Secara default, menekan Return
untuk memilih kemungkinan di menu ini hanya melengkapi kata - kata itu sebenarnya tidak mengirim perintah. Sebagai contoh, saya mungkin mendapatkan menu seperti ini
~ % cd de<TAB>
completing directory:
[Desktop/] Development/
Menekan di Return
sini akan menghasilkan
~ % cd Desktop/
Saya kemudian harus menekan Return
sebuah kedua waktu untuk benar-benar mengirim perintah.
Saya dapat memodifikasi perilaku ini untuk membuatnya sehingga menekan Return
keduanya memilih penyelesaian dan mengirimkan perintah dengan melakukan ini
bindkey -M menuselect '^M' .accept-line
Namun, ada masalah dengan ini: kadang-kadang saya perlu menyelesaikan file atau direktori tanpa mengirim perintah. Sebagai contoh, saya mungkin perlu melakukan ln -s Desktop Desktop2
- dengan bindkey
perilaku ini , mencoba menyelesaikan Desktop akan menghasilkan ln -s Desktop/
dikirim sebagai perintah, dan jelas saya tidak menginginkan itu.
Saya sadar bahwa hanya dengan menekan ruang akan membiarkan saya melanjutkan perintah, tetapi sekarang kebiasaan.
Mengingat ini, apakah ada cara untuk membuatnya sehingga hanya beberapa perintah yang memungkinkan Anda menekan Return
satu kali (seperti cd
), tetapi semua perintah lain mengharuskan Anda menekannya dua kali?
.zshrc
file tidak memungkinkan Anda untuk melakukannya maka jawabannya hanya akan menjadi tidak, kecuali jika Anda menyesuaikan sendiri kode sumber untuk mendukung perilaku berbasis perintah. Tapi kemudian Anda masih harus menentukan untuk perintah mana melakukan ini, yang dengan sendirinya jauh lebih membosankan daripada hanya menekan masuk tambahan ...