vi와 유사한 hjkl 키를 사용하여 zsh의 탭 완성 메뉴를 탐색할 수 있습니까?

vi와 유사한 hjkl 키를 사용하여 zsh의 탭 완성 메뉴를 탐색할 수 있습니까?

저는 zsh의 메뉴 기반 탭 완성 기능을 사용합니다. 한 번 누르면 Tab가능한 완료 목록이 나타납니다. 다시 누르면 Tab화살표 키를 사용하여 이 목록을 탐색할 수 있습니다. 그러나 대신 vi-like H, J, K, 키를 사용하여 탐색할 수 있습니까 L?

저는 명령줄 입력에 emacs 모드를 사용 합니다 bindkey -e. ~/.zshrc나도 사용zsh와 함께. 관련된 경우 탭 완성 시스템을 지정하는 명령은 다음과 같습니다.여기.

답변1

예, 다음을 활성화하면 가능합니다 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

답변2

내가 이것에 가장 가까운 것은 가능한 완성 목록을 통해 앞뒤로 이동하기 위해 and - 대신 - CTRLand - 를 사용 N하는 것입니다 . 이것CTRLPTabShiftTab~이다좀 더 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

다음은바인딩.

관련 정보