Answers:
是的,您可以通过启用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)只如果我按tab工作第一,大概是为了初始化完成系统,然后运行bindkey…
。否则,将失败,如上(bindkey: no such keymap `menuselect'
)所示。
我最接近的是使用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
这是绑定的文档。
bindkey
在终端的命令,但是如果我把他们在结束失败~/.zshrc
,有/home/sparhawk/.zshrc:bindkey:186: no such keymap `menuselect'
。