zsh: показать имена групп завершения

Я пишу некоторые дополнения zsh и застрял в том, как иметь несколько групп дополнений.

Я добавил имя группы с параметром -J docs.

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

Затем я добавил zstyle в свои ~/.zshrc документы (заголовок : group-name)

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

Завершения приходят нормально, но имена групп не отображаются. Что я делаю не так?


person Ilia Choly    schedule 26.04.2013    source источник


Ответы (2)


Я полагаю, что 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

Когда я запускаю это завершение, я получаю параметры, сгруппированные по сообщениям.

person Francisco    schedule 29.04.2013

В моем случае имена групп появились только после добавления:

zstyle ':completion:*' group-name ''
zstyle ':completion:*' format 'Completing %d'
person aleb    schedule 29.11.2016