La finalización de la pestaña ZSH de los comandos git es muy lenta. ¿Cómo puedo apagarlo?

18

Si escribo:

rm <TAB>

Veré posibles finalizaciones casi al instante.

Sin embargo, si escribo:

git rm <TAB>

Se bloqueará durante varios segundos si está en un repositorio de git, o no mostrará ninguna finalización si estoy fuera de un repositorio de git.

¿Cómo puedo solucionar este comportamiento?

No hay nada en mi .zshrc que parezca que tenga que ver con git: - /

Casey Rodarmor
fuente
+1 Esto me vuelve tan loco que he conectado mi cerebro para que no golpee <TAB>cuando uso git
Christopher

Respuestas:

26

Finalmente me molesté en buscar esto en Google y se me ocurrió esta respuesta SO, que funcionó perfectamente para mí. Agregue esto a .zshrc:

__git_files () { 
    _wanted files expl 'local files' _files     
}

También hay un hilo profundo de la lista de correo aquí que explica lo que zshestá haciendo tomar tanto tiempo.

Christopher
fuente
1
Esto no funcionó para mí. Estoy cargando los siguientes complementos de oh-my-zsh: plugins = (git gitfast last-working-dir zeus). Cargué la función anterior después de los complementos.
Justingordon
1
Yo tuve el mismo problema. Comentando para confirmar el éxito: en OSX 10.8.5, zsh 4.3.11, git 1.8.2, esa entrada .zshrc marcó la diferencia. Sin ella, la CPU se fija regularmente al 100%. Con él, la finalización de pestañas parece casi la misma para los comandos git que cualquier otra. ¡Gracias! :)
cada
Asegúrese de poner este comando antes de sus complementos zsh, de lo contrario podría terminar con un autocompletado rápido, pero errores una vez que intente ejecutar el comando git.
Simon
1

Aquí hay otra opción: la finalización oficial de Git zsh: git-completar.zsh . Todo lo que necesitas hacer es descargarlo ~/.zsh/_gity asegurarte de que esté en tu fpath:

fpath=(~/.zsh $fpath)

Me parece interesante que este hilo se mencione en otra respuesta; Comencé ese hilo y escribí la finalización oficial de Git zsh como resultado.

FelipeC
fuente