Zsh имеет систему завершения, активируемую нажатием вкладки:
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
Все, что мне удалось выяснить, это то, что это происходит из сценария /usr/share/zsh/functions/Completion/Unix/_git
, где _git
вызывается команда завершения.
Предполагая, что я знаю имя функции завершения (например _git
), как я могу получить вывод того, что произойдет, если я введу определенную строку и нажму клавишу табуляции? По сути, я пытаюсь принять вклад бывшего. git st
и получить вывод выше (программно, из скрипта).
Есть много других существующих вопросов об этом для bash, но я не нашел ничего, объясняющего, как этого добиться с помощью zsh.
zsh
autocomplete
Дверная ручка
источник
источник
Ответы:
Это можно сделать с помощью zsh-capture-complete . Файл README.md репозитория содержит несколько примеров:
Обратите внимание, что сам пакет утверждает, что он является доказательством концепции и, как таковой, может содержать ошибки при его выполнении.
источник