Zsh completion resource?
Zsh completion is a rather complex beast, and I find the man-page very difficult to read, especially it's missing (simple) examples of all the various optspec forms etc. I haven't managed to find anything online myself yet so help would be most appreciated.
As an example here's what I'm struggling with at the moment, and the zshcompsys
man-page doesn't offer any clarifications. I have
#compdef mtt2
_arguments -s : \
'-h' '--help' \
'-V' '--version' \
':foobars:(foo bar baz)'
Now, when I type mtt2 <TAB>
I'm only offered foo
, bar
and baz
as开发者_StackOverflow社区 completions, why not -h
, --help
, etc, as well?
What magic do I need to pass to _arguments
in order to be offered all possibilities?
You need to start argument that you complete with dash (I mean that argument that you type to test, not _arguments
argument). You should either look at zstyle
, try to pass -h
and others just like :foobars:
or even directly use compadd
. Examples:
- Directly using compadd:
#compdef test A=( -h --help -V --version foo bar baz ) compadd -a A
- Passing
-h
and others just like:foobars:
:#compdef test A=( -h --help -V --version ) _arguments \ - foobars \ ':foobars:(foo bar baz)' \ - options \ ":arguments:($A)"
orA=( -h --help -V --version foo bar baz ) _arguments \ ":::($A)"
zstyle
controls completion style. It is described in «COMPLETION SYSTEM CONFIGURATION» section inman zshcompsys
and probably has an option that will enable completing of switches, but I do not know which option controls that.
精彩评论