4

私はいくつかのzsh補完を書いていますが、補完の複数のグループを持つ方法にこだわっています。

グループ名を-Jパラメーターdocsで追加しました。

compadd -J group1 "$@" completion1 completion2
compadd -J group2 "$@" completion3 completion4

zstyle次に、を~/.zshrc ドキュメントに追加しました(見出し: group-name)

zstyle ':completion:*' group-name ''

補完はうまくいきますが、グループ名は表示されません。私は何を間違っていますか?

4

2 に答える 2

4

グループ名はコマンド位置 (つまり、最初の位置) にのみ適用されると思います。私自身、コマンドオプションのカスタム補完にのみ 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

この補完を実行すると、メッセージごとにグループ化されたオプションが表示されます。

于 2013-04-29T09:38:16.233 に答える