Tentu saja Anda tidak bisa lagi menggunakan Ctrl+ R. Jika Anda membaca manual Z Shell, Anda akan melihat bahwa hanya ada kunci yang mengikat untuk history-incremental-search-backward
widget di emacs
keymap. Tidak ada ikatan utama untuk itu di vi keymaps.
Tetapi seperti yang juga akan Anda temukan dari membaca manual (Ini bab 18.), menambahkan pengikatan kunci adalah latihan yang cukup sederhana dalam penggunaan bindkey
perintah:
bindkey "^R" history-incremental-search-backward
Anda bahkan tidak perlu menggunakan zle
perintah untuk memetakan widget ke fungsi shell, karena ini adalah widget standar.
Jika Anda membaca jawaban untuk pertanyaan yang sama yang ada di wiki Z Shell , Anda akan melihat perintah untuk menambahkan ini secara khusus ke vi "command" dan "insert mode" keymaps:
bindkey -M viins '^R' history-incremental-search-backward
bindkey -M vicmd '^R' history-incremental-search-backward
Juga catat bahwa, seperti yang ditunjukkan garyjohn , dalam keymap "perintah" vi, /karakter terikat ke vi-history-search-backward
widget. Perbedaan antara widget ini dan history-incremental-search-backward
widget adalah perilaku widget yang berlaku setelah seseorang dalam mode pencarian riwayat. Berikut adalah beberapa perbedaan yang akan Anda perhatikan:
- Beralih mode vi:
- Mode pencarian di
history-incremental-search-backward
matikan antara main
dan vicmd
keymaps ketika Anda mengaktifkan vi-cmd-mode
widget sementara masih dalam mode pencarian. yaitu dari emacs
mode menekan Esctombol atau Ctrl+ XCtrl+ untuk mengaktifkan mode Vpencarian antara emacs
dan vicmd
keymaps. (Meminta history-incremental-search-backward
dari vicmd
keymap dengan demikian merepotkan, kecuali Anda mengikat sesuatu ke vi-cmd-mode
dalam vicmd
keymap juga.)
- Mode pencarian dalam
vi-history-search-backward
memperlakukan vi-cmd-mode
widget sebagai accept-line
dan akan mengakhiri pencarian, memasukkan kembali mode perintah yang Anda masukkan pencarian. yaitu (dengan binding default) /memasuki mode pencarian dari mode perintah dan Esckembali ke mode perintah.
- Mengulangi pencarian:
- Di
history-incremental-search-backward
, keduanya history-incremental-search-backward
dan vi-rev-repeat-search
widget dikenali. yaitu (dengan anggapan bahwa Anda telah mengubah binding seperti di atas) baik Ctrl+ Rdan Nakan mencari baris yang cocok sebelumnya.
- Di
vi-history-search-backward
, hanya vi-rev-repeat-search
widget yang dikenali. yaitu (dengan anggapan bahwa Anda telah mengubah binding seperti di atas) Ctrl+ Rakan menyebabkan bunyi bip dan diabaikan.
garyjohn
menunjukkan cara Vim untuk melakukannya, danJdeBP
menunjukkan cara mendapatkan kembali keybinding untuk Ctrl + R! Saya akan bermain dengan kedua metode dan menerima jawaban nanti. Saya akan memutuskan berdasarkan pada 1) metode mana yang tampaknya lebih mudah bagi saya dan 2) yang mendapat lebih banyak upvotes. Terima kasih untuk kalian berdua!