zsh:显示完成组名称

标签 zsh zsh-completion

我正在编写一些 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/

相关文章:

ZSH 如何在符号链接(symbolic link)目录中对非符号链接(symbolic link)文件进行 glob

autocomplete - 我可以在 zsh 中使用 kubectl 自动补全功能吗?

zsh将命令添加到新行

zsh - 从文件中生成 zsh 完整参数

zsh-completion - 如何找出哪个函数用于 zsh tab 补全

shell - Linux 上 find 命令的并行版本

arrays - 如何将关联数组分配给 zsh 中的另一个变量?

autocomplete - zsh 函数 : forward completion to subfunction

autocomplete - 如何在 oh-my-zsh 下强制完成文件名?

zsh 自动完成类似 sudo 的命令