zsh:按 Enter/Return 键选择菜单自动完成

Kip*_*ras 4 zsh tab-completion

一旦找到自动完成功能,我想从完成菜单中进行选择,目前我需要点击<Enter>两次 - 一次将选择添加到终端,一次执行命令。

有没有办法按<Enter>一次就可以同时执行这两项操作?


我也尝试过

bindkey -M menuselect '^M' .accept-line
Run Code Online (Sandbox Code Playgroud)

来自https://superuser.com/a/817451/1012390

但每次启动新终端时都会出现错误:

/home/kipras/.zshrc:bindkey:32: no such keymap `menuselect'
Run Code Online (Sandbox Code Playgroud)

Kip*_*ras 5

原来我在我的~/.zshrc

zmodload -i zsh/complist
Run Code Online (Sandbox Code Playgroud)

(应放在 之前bindkey -M menuselect '^M' .accept-line

通过github.com/okapia <3在这个 github 要点中解决


完整答案:

bindkey -M menuselect '^M' .accept-line
Run Code Online (Sandbox Code Playgroud)

将其移至您的.zshrc. 键映射menuselect在 complist 模块中定义。你可能有一行说zmodload -i zsh/complist所以它需要在那之后。该模块也可能仅由某些插件管理器/框架加载,但如果您的光标驱动完成菜单正常工作,那么它必须在某个阶段加载。zmodload不带参数列出加载的模块。