В моей работе у нас ~ 30K переменных управления процессом, к которым мы получаем доступ через сетевой протокол, который имеет удобные инструменты командной строки.
Я работаю над сценарием завершения zsh, который предоставит мне имя переменной и описание.
Это легко для небольшого числа опций.
compdef command
local -a var
var=('press1:Pressure 1' 'temp1: Temperature 1')
_describe 'var' var
Это не работает, когда у вас есть 30 тысяч переменных.Я написал сценарии, чтобы получить все 30 КБ в файл:
# 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
Полагаю, можно разбить строки по 30 КБ на несколько файлов.Мне нужен способ выбрать правильный подсписок для загрузки на основе первой буквы переменной.
Каков наилучший способ обработки этого типа завершения?Является ли этот вариант использования злоупотреблением завершением ZSH?Есть ли лучший способ?