我需要自动完成一个函数的两个参数,其中第二个参数取决于第一个参数。zsh自动完成,基于第一个参数的第二个参数
一个示例:函数“foo”的第一个参数可以具有值“a”或“b”。第二个参数在第一个参数是“a”的情况下可以具有值“10”或“11”,并且在第一个参数是“b”的情况下可以具有“20”和“21”。因此,以下参数组合是合法的:
foo a 10
foo a 11
foo b 20
foo b 21
这些组合是预先知道的(它们可以是硬编码的)。
zsh completion system doc是相当晦涩的,伟大的How To也没有解决我的问题。最接近的将是使用_arguments
,可能与国家行为,但我没有设法使其工作。