自定义 zsh 完成:自定义排序?

Custom zsh completion: custom sort?

我正在使用 _values 向自定义 zsh 命令添加补全功能,但不幸的是,zsh 忽略了我传递值的顺序,并按照我想要的相反顺序排序(我想要 sort -rn,基本上)。

有没有强制它遵守我传递的顺序,或者如果没有,以某种方式修改用于该特定命令的排序机制(即,我不' 想要更改 所有 完成的顺序,只是这个特定的。

示例:

_values 'my completions' foo bar

foo 之前显示 bar,但我希望在 bar 之前显示 foo

一般来说,Zsh 完成匹配可以添加到已排序或未排序的组中。但是,_values 不包含指定此选项的选项。所以你可以这样做:

_wanted -V values expl 'my completions' compadd foo bar

您想要 _values 的哪些功能?如果你想要一个没有重复的分隔列表,_sequence 可以包装上面的内容。如果您需要每场比赛的描述,_describe 可以提供帮助。但是,如果您想要 _values 的一些更复杂的功能,您要么受困于排序,要么必须手动执行更多操作。