O zsh possui um sistema de conclusão, ativado pressionando a tecla tab:
llama@llama:~$ git st<Tab>
Completing main porcelain command
stash -- stash away changes to dirty working directory
status -- show working-tree status
Completing plumbing internal helper command
stripspace -- filter out empty lines
Tudo o que consegui descobrir é que isso vem do script /usr/share/zsh/functions/Completion/Unix/_git
, onde _git
está sendo chamado o comando de conclusão.
Supondo que eu saiba o nome da função de conclusão (por exemplo _git
), como eu poderia obter a saída do que aconteceria se eu inserisse uma determinada string e pressionasse a guia? Essencialmente, estou tentando aceitar uma entrada de ex. git st
e obtenha a saída acima (programaticamente, de um script).
Existem muitas outras perguntas existentes sobre isso para o bash, mas não encontrei nada explicando como conseguir isso com o zsh.