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 g
para autocompletar, git
ya 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/_git
que 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 ls
y usará la_git-ls
funció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
$CURRENT
variable.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