J'ai une fonction Zsh personnaliséeg
:
function g() {
# Handle arguments [...]
}
À l'intérieur, je gère de courts arguments qui exécutent des commandes Git. Par exemple:
g ls # Executes git ls-files ...
g g # Executes git grep ...
J'ai besoin de pouvoir définir les règles de saisie semi-automatique sur les règles de Git pour les arguments courts, mais je ne sais pas comment procéder.
Par exemple, je dois g ls <TAB>
compléter par tabulation les règles pour git ls-files <TAB>
lesquelles me donneraient les arguments pour git ls-files
:
$ g ls --<TAB>
--abbrev -- set minimum SHA1 display-length
--cached -- show cached files in output
--deleted -- show deleted files in output
# Etc...
Il ne s'agit pas simplement g
de la saisie semi-automatique git
car je mappe mes commandes courtes personnalisées aux commandes Git.
zsh
autocomplete
git
Erik Nomitch
la source
la source
man git-config
.Réponses:
J'ai trouvé
/usr/share/zsh/functions/Completion/Unix/_git
qui avait quelques conseils pour des alias comme celui-ci et j'ai fini par définir ces fonctions pour les alias:Ensuite, j'ai fait une quinte
compdef g=git
. Le système de saisie semi-automatique verra que vous exécutez, par exemple,g ls
et utilisera la_git-ls
fonction de saisie semi - automatique.Merci à user67060 de m'avoir orienté dans la bonne direction.
la source
J'ai dû faire quelque chose de très similaire, c'est donc à peu près ce qui devrait résoudre votre problème.
Une chose à noter est que si vous modifiez le nombre d'arguments, vous devrez ajuster la
$CURRENT
variable.la source
Voici ce que je ferais:
Cependant, cela utilise l'achèvement de Git, pas l'achèvement de zsh:
https://git.kernel.org/cgit/git/git.git/tree/contrib/completion/git-completion.zsh
la source