在非选项(noDashes)输入后修复zsh _arguments选项(--whatever)完成

Eri*_*lin 8 zsh completion

我希望--flags我的gradle完成脚本中允许完成其他输入之后,但_arguments似乎需要这样做

描述选项标志的规范必须在描述分析行的非选项("位置"或"正常")参数的规范之前(来自zsh完成文档)

换句话说:command foo --o[TAB]什么都不做,但command --o[TAB]工作正常.有没有办法配置_arguments或我需要使用其他控制功能

注意:在我的情况下,单独的完成功能似乎不是一个选项,因为输入不在固定列表中(gradle任务是任意的,可以指定多个,gradle myfoo mybar --o[TAB]必须工作).

Eri*_*lin 1

我能够通过此提交解决此问题,至少在指定 1 个任务后允许选项。

技巧是设置_argumentswith中的状态:->statename,将上下文重置为下一个单词,并提供一个匹配非命令单词并_arguments再次使用的通配符匹配器。

几乎可以肯定有一种方法可以允许在任意数量的单词之后指定选项并避免一些重复,但这是一个可行的开始。