Zsh补全,启用shift-tab

Zsh补全,启用shift-tab

当 zsh 向您显示可能完成的菜单时,我希望它允许我用来shift-tab访问以前的完成条目 - 是否有一个选项可以控制使用什么键来访问以前的完成条目?

如果是这样,我需要在我的文件中添加什么~/.zshrc 才能进行设置。

如果有什么区别的话,我目前可以使用箭头键浏览完成菜单,但我不喜欢这样做,因为箭头键感觉不合适并且使用起来很尴尬。

答案1

您想要将编辑器命令绑定reverse-menu-completemenuselect键盘映射。

bindkey -M menuselect '^[[Z' reverse-menu-complete

我不确定转义序列的可移植性如何^[[Z,因此您可能需要检查 terminfo(5) 以查看是否有一种方法可以使用数组$terminfo来正确绑定它。

请注意,menuselect加载zsh/complist模块后键盘映射可用。如果您使用 来配置完成系统compinstall,则该模块通常会在您第一次完成某些操作时自动加载。为了能够将该绑定添加到您的~/.zshrc,您需要首先手动加载模块:

zmodload zsh/complist

答案2

接受的答案实际上对我不起作用。zsh如果我尝试在in 中使用菜单完成(设置zstyle ':completion:*' menu select'),则会崩溃:zmodload zsh/complist.zshrc

name clash when adding ZLE function `menu-select'

如果您不设置,zstyle ':completion:* menu select则它不会执行任何操作(因为完成操作不使用菜单),或者如果您不包含,zmodload...则设置不起作用。

正确且简单的设置是:

bindkey '^[[Z' reverse-menu-complete

这有效两个都如果您启用完成菜单并且“内联”完成建议!

相关内容