可以说我有一个别名grep
。当我使用 时zsh completion
,它将提供 grep 两次(一次作为命令,一次作为别名):
gr<TAB>
grep
grep
我发现我可以ignored-patterns
专门使用 foraliases
或commands
forbuiltins
或functions
“
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-
无论如何,保留字的标签是......