更新:

更新:

可以说我有一个别名grep。当我使用 时zsh completion,它将提供 grep 两次(一次作为命令,一次作为别名):

gr<TAB>
grep
grep

我发现我可以ignored-patterns专门使用 foraliasescommandsforbuiltinsfunctions

zstyle ':completion:*:*:-command-:*:aliases' ignored-patterns 'grep'
zstyle ':completion:*:*:-command-:*:commands' ignored-patterns 'foo'
zstyle ':completion:*:*:-command-:*:builtins' ignored-patterns 'something'
zstyle ':completion:*:*:-command-:*:functions' ignored-patterns 'something'

但有一些我需要忽略的补全,它们不属于以下类别:

which coproc
coproc: shell reserved word

另外,如果我定义了变量,它就会完成变量:

foo=1

fo<TAB>
foo

如何指定“shell 保留字”和要忽略的变量?

更新:

经过进一步研究,我发现了 zstyle 的一般语法:

':completion:<function>:<completer>:<command>:<argument>:<tag>'

我正在寻找的是“保留字”的正确标签名称,例如coproc

答案1

有一种更简单的方法可以消除来自不同标签的重复条目:将标签放在同一组中。

zstyle ':completion:*:*:-command-:*:*' \
    group-name -command-

无论如何,保留字的标签是......

相关内容