有没有办法检查ZSH中的标签完成菜单是否打开

问题描述

是否可以检查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