Tengo una función Zsh personalizadag :
function g() {
# Handle arguments [...]
}
Dentro de él, manejo argumentos cortos que ejecutan comandos Git. Por ejemplo:
g ls # Executes git ls-files ...
g g # Executes git grep ...
Necesito poder establecer las reglas de autocompletar a las reglas de Git para los argumentos cortos, pero no estoy seguro de cómo hacerlo.
Por ejemplo, necesito g ls <TAB>completar con tabulación las reglas para las git ls-files <TAB>cuales me darían los argumentos para 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...
Esto no es simplemente configurar gpara autocompletar, gitya que estoy asignando mis comandos cortos personalizados a los comandos Git.
zsh
autocomplete
git
Erik Nomitch
fuente
fuente

man git-config.Respuestas:
Encontré
/usr/share/zsh/functions/Completion/Unix/_gitque tenía algunos consejos para alias como este y terminé definiendo estas funciones para los alias:Entonces, hice una escalera
compdef g=git. El sistema de autocompletar verá que está ejecutando, por ejemplo,g lsy usará la_git-lsfunción de autocompletar.Gracias a user67060 por guiarme en la dirección correcta.
fuente
Tenía que hacer algo muy similar, así que esto es más o menos lo que debería resolver su problema.
Una cosa a tener en cuenta es que si cambia la cantidad de argumentos necesitará ajustar la
$CURRENTvariable.fuente
Esto es lo que haría:
Sin embargo, esto está usando la finalización de Git, no la finalización de zsh:
https://git.kernel.org/cgit/git/git.git/tree/contrib/completion/git-completion.zsh
fuente