Я столкнулся со следующей ситуацией.Я получил записи автозаполнения, такие как:
server:install
server:lint
...
Они должны быть дополнены zsh.На самом деле мой метод завершения работает довольно хорошо, пока я заменяю двоеточия подчеркиванием или чем-то другим, поскольку ZSH (или лучше функция _describe) будет использовать двоеточие в качестве разделителя.
Вы можете увидеть это в этом пример :
local -a subcmds topics
subcmds=('c:description for c command' 'd:description for d command')
topics=('e:description for e help topic' 'f:description for f help topic')
_describe 'command' subcmds -- topics
Однако я этого не хочу.Я действительно хочу, чтобы эти двоеточия были в записях автозаполнения.
Поэтому мой вопрос: могу ли я как-нибудь избежать двоеточия, чтобы ZSH заметил, что мое двоеточие не является разделителем для описания, или изменил разделитель начто-то отличное от двоеточия?
В настоящее время завершение выглядит следующим образом:
#compdef mycmd
local -a completions
completions=$(complete_me 2>/dev/null)
result=$(echo "$completions" | sed "s/:/_/g") # This line should be removed
lines=("${(f)result}")
_describe 'command' lines
Весь этот материал более или менее скопирован вместе с разных сайтов.Поэтому, вероятно, я просто пропустил довольно простой вариант - но я просто не могу его найти -.-.
Может ли кто-нибудь помочь мне с этим?
Спасибо, Матиас