วนรอบการแข่งขันใน ZSH เพิ่มขึ้นตามรูปแบบการค้นหาย้อนหลัง


10

ฉันเพิ่งสลับการค้นหาประวัติเพื่อใช้history-incremental-pattern-search-backwardเนื่องจากอนุญาตให้ใช้รูปแบบในการค้นหา นี่คือวิธีการติดตั้งในของฉัน.zshrc

bindkey -M vicmd '/' history-incremental-pattern-search-backward

มันใช้งานได้ดี แต่ฉันไม่สามารถหาวิธีที่จะไปที่การแข่งขันต่อไปจากเมนูค้นหา

% cat foobarbaz.txt
bck-i-search: f*baz

มีกุญแจผูกพันที่จะทำเช่นนี้?

คำตอบ:


12

ในที่สุดก็พบว่าคาถาที่เหมาะสม คุณต้องแมปการค้นหารูปแบบในโหมดแทรก นี่คือชิ้นส่วนที่ฉันขาดหายไป:

# Search backwards and forwards with a pattern
bindkey -M vicmd '/' history-incremental-pattern-search-backward
bindkey -M vicmd '?' history-incremental-pattern-search-forward

# set up for insert mode too
bindkey -M viins '^R' history-incremental-pattern-search-backward
bindkey -M viins '^F' history-incremental-pattern-search-forward

ฉันจะใช้^Bสำหรับการค้นหาแบบย้อนหลังในโหมดแทรก แต่ฉันได้แมปกับสิ่งอื่นแล้ว ดังนั้นตอนนี้^Rและ^Fวนรอบการแข่งขัน


สิ่งที่ไม่-Mสั่งทำอย่างไร ในกรณีของฉันแม้ไม่มี-Mคำหลักมันใช้งานได้ดี ..
alpha_989

การ-M keymapบอก bindkey ซึ่ง keymap เพื่อใช้การรวมกับ ฉันได้ตั้งค่าไว้สำหรับทั้งโหมดแทรกและโหมดคำสั่ง
claytron

ขอขอบคุณสำหรับการชี้แจง. ในกรณีของฉันฉันมีbindkey '^R' history-incremental-pattern-search-backwardและมันใช้งานได้ ฉันยังใช้/คำสั่งเริ่มต้นในรูปแบบปกติ vi ใน zsh ในการที่ฉันสามารถค้นหาประวัติคำสั่งและเมื่อพบคำสั่งก็จะให้ที่บรรทัดคำสั่ง จากนั้นฉันสามารถแก้ไขคำสั่งสุดท้ายหากจำเป็น
alpha_989

ถ้าฉันใช้'^R' history-incremental-pattern-search-backwardตรงกันข้ามมันจะส่งคำสั่งสุดท้ายที่ตรงกับสตริงการค้นหา อย่างไรก็ตามฉันไม่พบวิธีที่จะสามารถแก้ไขคำสั่งได้ หลังจากค้นหาคำสั่งที่เหมาะสมที่ตรงกับสตริงการค้นหาผ่านการค้นหาลายเซ็นแบบเพิ่มขึ้นมีชุดคีย์เฉพาะใดบ้างที่ฉันสามารถกดเพื่อให้สามารถแก้ไขคำสั่งได้หรือไม่
alpha_989

9

ตามzshzleหน้าคู่มือสำหรับ zsh 4.3.10 จะไม่มีการผูกกุญแจเป็นค่าเริ่มต้น คุณต้องเพิ่มการผูกลงในisearchแผนที่และมีเพียงไม่กี่วิดเจ็ต ตัวอย่างเช่นคุณสามารถ:

bindkey -M isearch '^R' history-incremental-search-backward
bindkey -M isearch '^S' history-incremental-search-forward

bindkey -lไม่แสดงisearchแผนที่
claytron

@claytron: ต้องเป็นปัญหารุ่น: isearchใหม่ใน 4.3.10 ในขณะที่history-incremental-pattern-search-backwardปรากฏใน 4.3.7 (ถ้าฉันอ่านการเปลี่ยนแปลงอย่างถูกต้อง)
Gilles 'หยุดความชั่วร้าย'

ฉันใช้ 4.3.10 ไม่แน่ใจว่าทำไมถึงไม่มีอยู่ การใช้การเชื่อมโหมดแทรกนั้นใช้งานได้สำหรับฉัน
claytron
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.