回答:
はい、有効にすることでできます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
zstyle
行を意味するのですか?はい、私もそれを持っていました~/.zshrc
。
autoload -Uz compinit
しcompinit
ても機能しませんでしたが、有効にすることが問題かどうかはわかりません。なぜなら、(a)メニュー選択は一般的な意味で正常に機能し、常に機能し、(b)bindkey
後で手動で行を実行できるからです。動作します。また、(b)タブを最初に押して、おそらく完了システムを初期化してからを実行した場合にのみ機能することに気付きましたbindkey…
。それ以外の場合、上記のように失敗します(bindkey: no such keymap `menuselect'
)。
これに最も近いのは、-の代わりにCTRL- NとCTRL- Pを使用して、可能な補完のリストを前後に移動することです。これは、よりナビゲーションに似ています。TabShiftTabvi
構成.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
バインディングのドキュメントは次のとおりです。
bindkey
は、端末でコマンドを手動で実行した場合はうまく機能しますが、の最後にコマンドを追加すると失敗~/.zshrc
し/home/sparhawk/.zshrc:bindkey:186: no such keymap `menuselect'
ます。