Selesai dengan Zsh, mengaktifkan tab geser

13

Ketika zsh menampilkan menu penyelesaian yang memungkinkan, saya ingin itu digunakan shift-tabuntuk mengakses entri penyelesaian sebelumnya - apakah ada opsi yang mengontrol kunci apa yang digunakan untuk mengakses entri penyelesaian sebelumnya?

Dan jika demikian, apa yang harus saya tambahkan ke ~/.zshrc file saya untuk mengaturnya.

Jika ada bedanya, saya saat ini dapat menavigasi melalui menu penyelesaian menggunakan tombol panah, tapi saya tidak suka melakukan ini karena tombol panah merasa tidak pada tempatnya dan canggung untuk digunakan.

Alexej Magura
sumber

Jawaban:

13

Anda ingin mengikat perintah editor reverse-menu-completeke menuselectkeymap.

bindkey -M menuselect '^[[Z' reverse-menu-complete

Saya tidak yakin seberapa portabel urutan escape ^[[Z, jadi Anda mungkin ingin memeriksa terminfo (5) untuk melihat apakah ada cara menggunakan $terminfoarray untuk mengikatnya dengan benar.

Perhatikan bahwa menuselectkeymap tersedia setelah Anda memuat zsh/complistmodul. Jika Anda telah mengonfigurasi sistem penyelesaian compinstall, modul tersebut biasanya dimuat secara otomatis saat pertama kali Anda menyelesaikan sesuatu. Untuk dapat menambahkan ikatan itu ke Anda ~/.zshrc, Anda perlu memuat modul secara manual terlebih dahulu dengan:

zmodload zsh/complist
llua
sumber
^[[Zada shift-tabdi komputer saya juga, jadi jangan khawatir tentang hal itu tidak portabel; Terima kasih. :)
Alexej Magura
1
Saya mendapatkan kesalahan berikut ketika saya memohon zshsetelah menambahkan bindkeybaris ke ~/.zshrcfile saya : ~/.zshrc:bindkey:190: no such keymap `menuselect'
Alexej Magura
2
Itu pasti "${terminfo[kcbt]}".
Thomas Dickey