Para cualquiera que llegue a la conclusión de que los tiempos de inicio para los nuevos shells en MacOS son demasiado lentos para ellos, esta es la solución .
Acabo de descubrir que, de hecho, hay dos paquetes que se pueden instalar a través de brew
. He estado instalando el bash-completion
paquete durante años, y nunca me molesté en cuestionarlo, aunque en ese momento pasé de Bash 3, a 4, a ahora 5. Sin embargo, de vez en cuando, volvía a visitar el problema. , a menudo tropezando con esta discusión de StackOverflow.
¡Hay otro paquete bash-completion@2
!
¿Cual es la diferencia? bash-completion
es para Bash versión 3.2. bash-completion@2
es para Bash versión 4.1+ y 5.
Al eliminar el bash-completion
paquete anterior e instalarlo bash-completion@2
, los tiempos de inicio de mi shell se han reducido de 605 ms a 244 ms. Esa es una gran mejora de velocidad.
Sospecho que muchos de nosotros estamos cometiendo este mismo error, ya que las brew info
estadísticas muestran que el primero tiene toneladas de instalaciones, mientras que el segundo tiene muy pocas:
Cabe señalar que la respuesta actual elegida menciona comentar algunas líneas, lo que proporciona solo una ligera mejora en los tiempos de inicio (si usa el bash-completion
paquete anterior, que muchos probablemente son), pero no tiene ningún impacto en el nuevo bash-completion@2
paquete: este nuevo paquete es rápido pase lo que pase Eso significa que no se requieren hacks.
TL; DR:
brew uninstall bash-completion && brew install bash-completion@2
Recuerde actualizar la ruta de origen al archivo de finalización en su archivo .bashrc
o .bash_profile
.
Fuentes:
Como un tema algo relacionado, uso mucho la rclone
utilidad, por lo que está instalada. También tiene el archivo de finalización más grande que he visto . Eliminarlo reduce los tiempos de inicio de mi shell a ~ 120 ms, que es muy rápido.
Editar:
Para cualquiera que quiera los detalles técnicos que explican este problema, he escrito sobre ello en detalle en los foros de Homebrew . Para resumir, la razón que bash-completion@2
es mucho más rápida es porque se escribió para que ya no cargue con entusiasmo todos los archivos de finalización; en su lugar, carga un archivo de finalización a pedido o, como lo describe el autor, los carga de manera no entusiasta .