Eu tenho regra de conclusão zsh para script personalizado. Meu script pode ter zero ou mais opções (começando com -
) e zero ou mais strings arbitrárias (padrões):
_arguments -S : \
'--foo' \
'--bar' \
'1:pattern:'
esta regra funciona apenas parcialmente, no seguinte formato:
script "somestring" <TAB>
oferece --foo
ou --bar
e --f<TAB>
completa automaticamente--foo
No entanto,
script <TAB>
não faz nada, onde eu gostaria de ter opções listadas ( --foo
, --bar
)
e mesmo quando eu começo explicitamente, --
ele mostra as opções, mas não as completa automaticamente, mesmo quando estou digitando --f<TAB>
e não há ambiguidade sobre a opção que desejo.
script --f<TAB>
deve completar automaticamente--foo
Então, para resumir, como string
pode ser qualquer coisa, não há nada para preencher automaticamente. Portanto, quando pressiono , quero preencher automaticamente as --options, independentemente de já ter digitado uma string/padrão ou não
Acho que tenho que especificar de alguma forma em minha regra de conclusão que qualquer coisa que comece com -
é uma opção, não string e, portanto, deve ser preenchida automaticamente a partir das opções disponíveis
Eu encontrei algo que funciona comigo: