วิธีเปิดใช้งานการค้นหาแบบย้อนกลับใน zsh?


36

ฉันเพิ่งเปลี่ยนมาเป็น zsh (ในที่สุด) และฉันก็รักมัน! จนถึงตอนนี้สิ่งหนึ่งที่ฉันขาดหายไปคือCtrl+ Rเพื่อทำการค้นหาประวัติที่เพิ่มขึ้น
ฉันมีการตั้งค่าประวัติอย่างถูกต้อง

HISTSIZE=10000
SAVEHIST=10000
HISTFILE=~/.zsh_history

และฉันใช้viการเชื่อมโยงคีย์

bindkey -v

แต่Ctrl+ Rไม่ทำงาน มันลบบรรทัดเหนือบรรทัดปัจจุบันซึ่งไม่ใช่พฤติกรรมที่ควรมีในกลุ่มเช่นกัน

ข้อเสนอแนะใด ๆ


1
btw การCtrl[ /
หลีกเลี่ยง

คำตอบ:


58

bindkey -vถ้าผมจำได้อย่างถูกต้องคุณจะต้องตั้งค่าอย่างชัดเจนแม้จะมี ใช้สิ่งนี้:

bindkey -v
bindkey '^R' history-incremental-search-backward

4
อาจhistory-incremental-pattern-search-backwardเป็นการกระทำทางเลือกที่ใช้ในบริบทนั้น
maxschlepzig

2
@maxschlepzig ขออภัยความแตกต่างระหว่างสองคืออะไร
Ali

2
@Ali กับ-pattern-รุ่นคุณสามารถใช้การค้นหารูปแบบ (รูปแบบเช่น globbing หรือ regex () ขึ้นอยู่กับส่วนอื่น ๆ ของ zsh การกำหนดค่าของคุณ?) - เหมือนเช่นคุณสามารถใช้การค้นหารูปแบบfo*barที่มีgrepเพื่อให้ตรงกับ ' fobar ',' foobar ',' fooobar 'ฯลฯ
maxschlepzig

3
ฉันได้รับข้อผิดพลาด การตัด ^ R ในเครื่องหมายคำพูดคู่ทำ bindkey "^R" history-incremental-pattern-search-backward
Ramon Tayag

1
bindkey -vต้องมาก่อนhistory-incremental-search-backward
นิซ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.