我想添加关键字foo
并将bar
其添加到任何命令或参数的自动完成结果中。
例如:
cd <TAB>
除了现有的补全之外,还应在建议中提供 foo 和 bar
blah <TAB>
除了现有的补全之外,还应该在建议中提供 foo 和 bar。
我读过的 zsh 补全文章提到了向特定命令添加补全的方法,但没有提到如何将一组单词添加到全局补全中(或者是否存在始终存在的全局补全列表)
答案1
必须挖掘zshcompsys 手册找到正确的命令
下面的代码~/.zshrc
对我有用
function _my_completions() {
local -a mywords
mywords=( foo bar )
compadd -a mywords
}
compdef _my_completions -first-
这里的重要标志是 context -first-
。根据 zshcompsys 手册页:
-first-
This is tried before any other completion function. The function called
may set the _compskip parameter to one of various values: all: no further
completion is attempted; a string containing the substring patterns: no
pattern completion functions will be called; a string containing default:
the function for the `-default-' context will not be called, but
functions defined for commands will