我想为具有以下调用约定的程序编写 zsh 完成:
program [generaloptions] operation [operationoptions]
……其中operation
之一--install
在哪里--upgrade
?
到目前为止,我所拥有的是一般选项和操作选项。我的代码看起来像这样:
local generaloptions; generaloptions=(...)
local installoptions; installoptions=(...)
local upgradeoptions; upgradeoptions=(...)
case "$state" in
(install)
_arguments -s \
"$installoptions[@]" \
&& ret=0
(upgrade)
_arguments -s \
"$upgradeoption[@]" \
&& ret=0
*)
_arguments -s \
"$generaloptions[@]" \
'--install[...]: :->install' \
'--upgrade[...]: :->upgrade' \
&& ret=0
问题是,在我键入操作和第一个操作选项后,状态会重置为*)
案例。
例子
$ program --install --installoption --<tab>
list of general options
如何将下一个状态设置为与旧状态相同?哪个命令有类似的调用约定,所以我可以看一下这个命令的补全代码?