ฉันสามารถนำทางเมนูการเติมแท็บของ zsh ด้วยปุ่ม hjkl ที่เหมือนกันได้หรือไม่


13

ฉันใช้ความสมบูรณ์ของแท็บเมนูของ zsh ฉันกดTabหนึ่งครั้งและรายการความสำเร็จที่เป็นไปได้จะปรากฏขึ้น ถ้าฉันกดTabอีกครั้งฉันสามารถนำทางรายการนี้ด้วยปุ่มลูกศร แต่ก็เป็นไปได้ที่จะนำทางพวกเขาด้วยviเหมือนH, J, K, Lกุญแจแทน?

ผมใช้ emacs โหมดสำหรับการป้อนข้อมูลบรรทัดคำสั่งที่มีในbindkey -e ~/.zshrcฉันยังใช้zimกับ zsh ด้วย ถ้าเกี่ยวข้องคำสั่งที่ระบุระบบแท็บเสร็จสิ้นเป็นที่นี่

คำตอบ:


16

ใช่คุณสามารถทำได้โดยเปิดใช้งานmenu select:

zstyle ':completion:*' menu select
zmodload zsh/complist
...
# use the vi navigation keys in menu completion
bindkey -M menuselect 'h' vi-backward-char
bindkey -M menuselect 'k' vi-up-line-or-history
bindkey -M menuselect 'l' vi-forward-char
bindkey -M menuselect 'j' vi-down-line-or-history

+1 นี้ทำงานได้ดีถ้าผมด้วยตนเองเรียกใช้bindkeyคำสั่งใน terminal แต่ก็ล้มเหลวถ้าฉันทำให้พวกเขาในตอนท้ายของด้วย~/.zshrc /home/sparhawk/.zshrc:bindkey:186: no such keymap `menuselect'
Sparhawk

คุณเปิดใช้งานสคริปต์การดำเนินการเสร็จสมบูรณ์หรือไม่ ดูคำสั่งก่อนที่จะจุดไข่ปลา ...
jasonwryan

คุณหมายถึงzstyleสายหรือไม่ ใช่ฉันมีสิ่งนั้น~/.zshrcด้วย
Sparhawk

คุณต้องเปิดใช้งานได้เป็นอย่างดี ดูของฉัน.zshrc เป็นตัวอย่าง
jasonwryan

การเพิ่มautoload -Uz compinitและใช้งานcompinitไม่ได้ แต่ฉันไม่แน่ใจว่าการเปิดใช้งานเป็นปัญหาหรือไม่เพราะ (a) การเลือกเมนูใช้งานได้ดีในแง่ทั่วไปและมีเสมอและ (b) ฉันสามารถเรียกใช้bindkeyบรรทัดในภายหลังได้ด้วยตนเองโรงงาน นอกจากนี้ผมเพิ่งตระหนัก (ข) จะทำงานเฉพาะถ้ากดแท็บฉันแรกคงจะ initialise bindkey…ระบบเสร็จจากนั้นก็วิ่ง มิฉะนั้นจะล้มเหลวตามข้างบน ( bindkey: no such keymap `menuselect')
Sparhawk

4

ที่อยู่ใกล้ฉันได้มานี้ใช้CTRL- NและCTRL- Pก้าวไปข้างหน้าและย้อนกลับผ่านรายการของความสำเร็จที่เป็นไปได้แทนการTabและ-Shift Tabนี่คือviการนำทางที่คล้ายกันมากขึ้น

ใน.zshไฟล์ปรับแต่งฉันทำได้โดยใช้:

bindkey '^n' expand-or-complete
bindkey '^p' reverse-menu-complete

และที่เกี่ยวข้อง:

bindkey '^k' up-history
bindkey '^j' down-history
bindkey '^h' backward-delete-char
bindkey '^w' backward-kill-word
bindkey '^r' history-incremental-search-backward

นี่เอกสารสำหรับการที่มีการผูก


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