แน่นอนคุณไม่สามารถใช้Ctrl+ Rได้อีก หากคุณศึกษาคู่มือ Z Shell คุณจะเห็นว่ามีเพียงการเชื่อมโยงคีย์สำหรับhistory-incremental-search-backwardวิดเจ็ตในemacskeymap ไม่มีการโยงคีย์สำหรับคีย์ใน vi keymaps
แต่ตามที่คุณจะพบได้จากการอ่านคู่มือ (บทที่ 18) การเพิ่มการเชื่อมโยงคีย์เป็นการออกกำลังกายที่ค่อนข้างง่ายในการใช้bindkeyคำสั่ง:
bindkey "^R" history-incremental-search-backward
คุณไม่จำเป็นต้องใช้zleคำสั่งเพื่อแมปวิดเจ็ตไปยังฟังก์ชันเชลล์เนื่องจากนี่เป็นวิดเจ็ตมาตรฐาน
หากคุณศึกษาคำตอบของคำถามเดียวกันนี้ที่อยู่ในวิกิ Z เชลล์คุณจะเห็นคำสั่งสำหรับการเพิ่มคีย์แมป "คำสั่ง" และโหมดแทรก "โดยเฉพาะ:
bindkey -M viins '^R' history-incremental-search-backward
bindkey -M vicmd '^R' history-incremental-search-backward
นอกจากนี้โปรดทราบว่าในขณะที่ garyjohn ชี้ให้เห็นใน keymap คำสั่ง "vi" /อักขระจะถูกผูกไว้กับvi-history-search-backwardวิดเจ็ต ความแตกต่างระหว่างวิดเจ็ตนี้และhistory-incremental-search-backwardวิดเจ็ตเป็นพฤติกรรมวิดเจ็ตที่ใช้ครั้งเดียวในโหมดการค้นหาประวัติ นี่คือความแตกต่างสองสามอย่างที่คุณจะสังเกตเห็น:
- การสลับโหมด vi:
- โหมดการค้นหาhistory-incremental-search-backwardสลับระหว่างmainและปุ่มกดvicmdเมื่อคุณเรียกใช้vi-cmd-modeวิดเจ็ตในขณะที่ยังคงอยู่ในโหมดค้นหา เช่นจากemacsโหมด presssing EscสำคัญหรือCtrl+ XCtrl+ Vปุ่มสลับโหมดการค้นหาระหว่างemacsและvicmdkeymaps (การเรียกใช้history-incremental-search-backwardจากvicmdkeymap นั้นจะยุ่งยากถ้าคุณไม่ผูกอะไรไว้vi-cmd-modeในvicmdkeymap เช่นกัน)
- โหมดการค้นหาในการvi-history-search-backwardปฏิบัติต่อvi-cmd-modeเครื่องมือเป็นaccept-lineและจะสิ้นสุดการค้นหาเข้าสู่โหมดคำสั่งที่คุณป้อนการค้นหาอีกครั้ง ie (พร้อมการผูกค่าเริ่มต้น) /เข้าสู่โหมดค้นหาจากโหมดคำสั่งและEscกลับไปที่โหมดคำสั่ง
 
- ค้นหาซ้ำ:
- ในhistory-incremental-search-backwardทั้งสองhistory-incremental-search-backwardและvi-rev-repeat-searchวิดเจ็ตได้รับการยอมรับ เช่น (สมมติว่าคุณได้ทำการเปลี่ยนแปลงการผูกไว้ด้านบน) ทั้งCtrl+ RและNจะค้นหาบรรทัดที่ตรงกันก่อนหน้า
- ในvi-history-search-backwardเพียงvi-rev-repeat-searchเครื่องมือที่ได้รับการยอมรับ เช่น (สมมติว่าคุณเปลี่ยนแปลงการผูกไว้ด้านบน) Ctrl+ Rจะทำให้เกิดเสียงบี๊บและถูกละเว้น
 
 
              
garyjohnแสดงวิธีการ Vim ที่จะทำและJdeBPแสดงวิธีรับ keybinding สำหรับ Ctrl + R กลับมาแล้ว! ฉันจะเล่นกับทั้งสองวิธีและยอมรับคำตอบในภายหลัง ฉันจะตัดสินใจตาม 1) วิธีการใดที่ดูเหมือนง่ายสำหรับฉันและ 2) ซึ่งได้รับการโหวตมากขึ้น ขอบคุณทั้งคุณ!