我有自定义脚本的 zsh 完成规则。我的脚本可以采用零个或多个选项(以 开头-
)和零个或多个任意字符串(模式):
_arguments -S : \
'--foo' \
'--bar' \
'1:pattern:'
此规则仅部分有效,格式如下:
script "somestring" <TAB>
提供--foo
或--bar
并--f<TAB>
自动完成--foo
然而,
script <TAB>
什么都不做,我想在其中列出选项 ( --foo
, --bar
)
甚至当我明确地开始时,--
它也会显示选项,但即使在我输入时也不会自动完成它们--f<TAB>
,而且我想要的选项也没有歧义。
script --f<TAB>
应该自动完成--foo
所以,总而言之,既然string
可以是任何东西,就没有什么可以自动完成的。因此,当我按下时,我想自动完成 --options,不管我是否已经输入了字符串/模式
我想,我必须以某种方式在我的完成规则中指定以任何开头的内容-
都是一个选项,而不是字符串,因此应该从可用选项自动完成
我找到了适合我的东西: