问题描述
是否可以检查ZSH中是否打开了选项卡完成菜单?
我问这个问题是因为我想将空格键绑定到accept-search
,以便可以接受使用space
键的完成,但是我想用一种不干扰space
键的默认行为(插入space
字符)。另外,我要这样做是因为我不喜欢这样,当我用space
关闭完成菜单时会插入一个空格。
reddit中的某个人帮助了我,但我需要一种方法来检查自动完成菜单是否打开。
function space-or-accept-suggestion() {
if <INSERT WAY TO CHECK IF AUTOCOMPLETION MENU IS OPEN>; then
zle accept-search
else
zle self-insert
fi
}
zle -N space-or-accept-suggestion
bindkey -M emacs ' ' space-or-accept-suggestion
解决方法
您无需检查。只需使用此:
a = "Raul"
if a in {"Kevin","John","Inbar"}:
pass
更多信息可以在这里找到:http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#Menu-selection