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-backwardwidget di emacskeymap. 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 bindkeyperintah:
bindkey "^R" history-incremental-search-backward
Anda bahkan tidak perlu menggunakan zleperintah 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-backwardwidget. Perbedaan antara widget ini dan history-incremental-search-backwardwidget 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-backwardmatikan antara maindan vicmdkeymaps ketika Anda mengaktifkan vi-cmd-modewidget sementara masih dalam mode pencarian. yaitu dari emacsmode menekan Esctombol atau Ctrl+ XCtrl+ untuk mengaktifkan mode Vpencarian antara emacsdan vicmdkeymaps. (Meminta history-incremental-search-backwarddari vicmdkeymap dengan demikian merepotkan, kecuali Anda mengikat sesuatu ke vi-cmd-modedalam vicmdkeymap juga.)
- Mode pencarian dalam
vi-history-search-backwardmemperlakukan vi-cmd-modewidget sebagai accept-linedan 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-backwarddan vi-rev-repeat-searchwidget 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-searchwidget yang dikenali. yaitu (dengan anggapan bahwa Anda telah mengubah binding seperti di atas) Ctrl+ Rakan menyebabkan bunyi bip dan diabaikan.
garyjohnmenunjukkan cara Vim untuk melakukannya, danJdeBPmenunjukkan 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!