Ответ 1
Вам нужно запустить аргумент, который вы заполняете тире (я имею в виду тот аргумент, который вы вводите для тестирования, а не аргумент _arguments
). Вы должны либо взглянуть на zstyle
, попробуйте передать -h
, а другие просто как :foobars:
или даже напрямую использовать compadd
. Примеры:
- Непосредственно использование compadd:
#compdef test A=( -h --help -V --version foo bar baz ) compadd -a A
- Передача
-h
и другие, как:foobars:
:#compdef test A=( -h --help -V --version ) _arguments \ - foobars \ ':foobars:(foo bar baz)' \ - options \ ":arguments:($A)"
илиA=( -h --help -V --version foo bar baz ) _arguments \ ":::($A)"
-
zstyle
управляет стилем завершения. Он описан в разделе "КОНФИГУРАЦИЯ СИСТЕМЫ ЗАВЕРШЕНИЯ" вman zshcompsys
и, вероятно, имеет опцию, которая позволит завершить работу коммутаторов, но я не знаю, какая опция управляет этим.