我正在编写一些zsh完成版,并坚持如何拥有多组完成。
我使用-J
参数docs添加了群组名称。
compadd -J group1 "$@" completion1 completion2
compadd -J group2 "$@" completion3 completion4
然后我将zstyle
添加到我的~/.zshrc
docs(标题:group-name
)
zstyle ':completion:*' group-name ''
完成情况很好,但没有显示组名。我做错了什么?
答案 0 :(得分:3)
我相信 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
当我运行此完成时,我会按消息分组选项。
答案 1 :(得分:2)
在我的情况下,群组名称仅在添加后出现:
zstyle ':completion:*' group-name ''
zstyle ':completion:*' format 'Completing %d'