zsh dispose d'un système de complétion, activé en appuyant sur 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
Tout ce que j'ai pu comprendre, c'est que cela vient du script /usr/share/zsh/functions/Completion/Unix/_git
, où _git
est appelée la commande d'achèvement.
En supposant que je connaisse le nom de la fonction d'achèvement (par exemple _git
), comment puis-je obtenir la sortie de ce qui se passerait si j'entrais une certaine chaîne et appuyais sur tab? Essentiellement, j'essaye de prendre une entrée d'ex. git st
et obtenez la sortie ci-dessus (par programme, à partir d'un script).
Il y a beaucoup d' autres existants des questions sur ce pour bash, mais je n'ai rien trouvé qui explique comment atteindre cet objectif avec zsh.
zsh
autocomplete
Poignée de porte
la source
la source
Réponses:
Cela peut être fait en utilisant zsh-capture-complétement . Le fichier README.md du référentiel fournit plusieurs exemples:
Notez que le package lui-même indique qu'il s'agit d'une preuve de concept et, en tant que tel, peut contenir des erreurs dans son exécution.
la source