oh-my-zsh lento, pero solo para ciertos repositorios de Git
Recientemente comencé a usar Zsh y es increíble. Desafortunadamente, para el proyecto que considero mi proyecto "principal", todo va lento. Lo que quiero decir es que cada vez que ejecuto un comando, ls
por ejemplo, hay un retraso de aproximadamente cinco segundos entre el momento en que se ejecuta el comando y el momento en que puedo usar la terminal nuevamente.
¿Qué podría ser diferente en este repositorio que hace que Zsh sea tan lento? Supongo que es algo específico de Zsh porque no había ningún problema antes de comenzar a usar Zsh. Intenté hacer un git clean
pero no hizo ninguna diferencia notable.
Estoy en Mac OS X si eso importa.
Actualización: Resulta que esta línea mía .zshenv
es la que lo hacía lento:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
Si comento esa línea, pasa de tardar unos 3 segundos a aproximadamente 1 segundo. Desafortunadamente, necesito esa línea, ya que muchos de mis proyectos usan RVM. No sé qué hacer ahora.
Actualización 2 : esto parece ser específicamente algo de oh-my-zsh. Si no cargo ~/.oh-my-zsh/oh-my-zsh.sh
, no tengo problema.
Puedes agregar esto a tu configuración de git y zsh ya no verificará el estado
git config --add oh-my-zsh.hide-status 1
git config --add oh-my-zsh.hide-dirty 1
Explicación
Hay dos funciones centrales de git en lib/git.zsh :
git_prompt_info()
parse_git_dirty()
Cada método tiene un interruptor de configuración de git para desactivarlo:
oh-my-zsh.hide-status
oh-my-zsh.hide-dirty
Algunos temas crean sus propias consultas de git y, a veces, ignoran estas banderas .
Oh_my_zsh parece ser lento para algunos repositorios porque verifica el estado del repositorio después de cada comando. Este comportamiento se puede anular en la nueva versión de .oh_my_zsh. Simplemente descomente la siguiente línea en .zshrc:
DISABLE_UNTRACKED_FILES_DIRTY="verdadero"
Después de esto, reinicia tu terminal o ejecuta lo siguiente:
fuente ~/.zshrc