我正在编写一些 zsh 补全,并且一直在思考如何拥有多组补全。
我用 -J
添加了组名参数 docs .
compadd -J group1 "$@" completion1 completion2
compadd -J group2 "$@" completion3 completion4
然后我添加了
zstyle
到我的 ~/.zshrc
docs (标题:group-name
)zstyle ':completion:*' group-name ''
完成很好,但没有显示组名。我究竟做错了什么?
最佳答案
我相信 group-name 仅适用于命令位置(即第一个)。我自己,我只直接使用 compadd 来自定义完成命令选项,在这种情况下,它是 -x message
被使用:_foo
的内容:
#compdef foo
A=( -h --help foo bar baz )
compadd -J group1 -X expl1 -x msg1 -a A
B=( clown-fish hippo )
compadd -J group2 -X expl2 -x msg2 -a B
然后在其他地方:
function foo { echo $* }
compdef _foo foo
当我运行这个完成时,我得到按消息分组的选项。
关于zsh:显示完成组名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16240729/