ZSH完成30K选项

时间:2018-12-19 22:07:48

标签: zsh zsh-completion

在我的工作中,我们有约30K的过程控制变量,可通过网络协议进行访问,该协议具有便捷的命令行工具。

我正在使用zsh完成脚本,它将为我提供变量名称和描述。

这对于少数选项很容易。

compdef command
local -a var
var=('press1:Pressure 1' 'temp1: Temperature 1')
_describe 'var' var

当您有3万个变量时,这不起作用。我编写了脚本,将所有30K都写入了文件:

# contents of file
press1:Pressure1
temp1:Temperature1
press_n:Pressure for nth
...

然后我可以这样做:

compdef command
local -a var
# I'm sure there's a zsh specific way to do this
var=($(cat var.list | tr "\n" " "))
_describe 'var' var

我想我可以将3万行分成多个文件。我需要一种方法来根据变量的第一个字母选择要加载的正确子列表。

处理此类完成的最佳方法是什么? 此用例是否滥用ZSH完成?有更好的方法吗?

0 个答案:

没有答案