bash - instalar - Completar la pestaña Cygwin Git
instalar cygwin (7)
Instalé Cygwin en Windows y uno de los paquetes predeterminados es la finalización de la pestaña git, pero no la he completado.
Hice una búsqueda y encontré una nota que decía que no estaba habilitada de forma predeterminada. Copié el skel .bashrc and .bash_profile to ~ and in .bashrc
, descomenté las líneas para completarlas y luego volví a lanzar la consola. Aún nada.
Luego me di cuenta de que el archivo .bash_completion no estaba presente en /etc
, por lo que encontré una copia de eso en línea y lo puse en su lugar, pero aún no estoy completo en git.
Parece que también debería haber un directorio /etc/bash_completion.d
con git/
en él, pero tampoco tengo eso.
A partir de mayo de 2016, pude lograr que la finalización de la pestaña git & svn funcionara simplemente instalando el paquete bash-completed utilizando la utilidad de configuración de Cygwin (v2.874) que se encuentra aquí: https://www.cygwin.com/install.html . Asegúrese de seleccionar la opción ''Instalar desde Internet''. El paquete de finalización de bash se incluye en la categoría Shells.
En mi .bashrc
for file in /etc/bash_completion.d/* ; do
source "$file"
done
La respuesta anterior imprime bash: have: command not found
para casi todos los scripts en bash_completion.d /. Esta respuesta del post vinculado me lo resuelve:
if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi
El script / program / etc / bash_completion ya incluye los scripts en /etc/bash_completion.d y también define algunas funciones que necesitan los scripts incluidos.
Sin embargo, tenga en cuenta que esto ralentizará la carga de su shell, especialmente en Cygwin (para mí se redujo a aproximadamente 1 segundo). Para mitigar esto, puede cambiar el nombre de todo en /etc/bash_completion.d/ a *.bak
, y luego eliminar el .bak
de los comandos que realmente le interesan (gracias al tiempo de carga lento de bash en cygwin ).
Actualización: el archivo /etc/bash_completion
desapareció mágicamente (parece que se debió a la actualización del paquete de finalización de bash a 2.1-1). Como solución rápida, acabo de crear un enlace simbólico en / etc para /usr/share/bash-completion/bash_completion
.
Actualización 2: volver a leer la pregunta original, el problema de no tener un directorio /etc/bash_completion.d
puede estar relacionado con no instalar el paquete "bash-completed" en Cygwin.
Me encontré con el mismo problema hace unos días y la instalación de bash-completion
no fue suficiente.
El problema se resolvió en mi caso al descargar https://github.com/git/git/blob/master/contrib/completion/git-completion.bash y copiarlo en /etc/bash_completion.d/
Ver también: https://git-scm.com/book/en/v1/Git-Basics-Tips-and-Tricks
Para instalar el paquete "git-completed" ejecutado desde cmd.exe:
cyg-get git-completion
No necesitas modificar tu .bashrc después de eso.
Tuve que instalar los siguientes paquetes de Cygwin:
-
bash-completion
-
bash-completion-devel
Actualizado para 2016: Instala el paquete bash-completion
.