vi와 같은 hjkl 키를 사용하여 zsh의 탭 완성 메뉴를 탐색 할 수 있습니까? J, K, L대신 키? bindkey -ein 과

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

bindkey -ein 과 함께 명령 줄 입력에 emacs 모드를 사용합니다 ~/.zshrc. 또한 zim 과 zsh를 함께 사용 합니다. 관련이있는 경우 탭 완성 시스템을 지정하는 명령은 다음같습니다 .



답변

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

답변

나는이 오셨습니다 가장 가까운 사용 CTRLNCTRLP가능한 완성 목록을 앞뒤로 이동, 대신 TabShiftTab. 이것은 이다vi-like 탐색.

구성 .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

바인딩에 대한 문서는 다음과 같습니다 .