Si hago esto:
alias g='git'
Pierdo todas las reglas de finalización (es decir, las ramas y los controles remotos ya no se completan automáticamente cuando presiono TAB después de escribir, por ejemplo g push o
).
command-line
bash
git
auto-completion
Paweł Gościcki
fuente
fuente
g=git
756 veces en el último mes, lo que significa que guardé presionando las teclas 'g' e 'i' 1512 veces en total. Eso, combinado con mis alias git, probablemente me ahorre decenas de miles de pulsaciones de teclas al mes.Respuestas:
Copie y modifique oportunamente desde
/etc/bash_completion.d/git
, agregue las siguientes líneas a su~/.bashrc
:fuente
source /usr/share/bash-completion/completions/git
a mi .bashrc.bashrc
código aquí funciona, pero esta respuesta definitivamente está desactualizada./etc/bash_completion.d/git
no parece existir el 14.04. Ver la respuesta de lzap a continuación.La última secuencia de finalización de bash se movió y cambió el nombre de las cosas un poco. Nieva:
Use esto en versiones recientes de Ubuntu (por ejemplo, 14.04, también Fedora 22+) cuando encuentre:
durante completar
fuente
__git_complete gc _git_checkout
(o similar) para configurar terminaciones para alias más específicos. Busque/usr/.../git
como arriba para encontrar el nombre correcto.gc
=>git checkout
) en lugar de aliasingc
acheckout
dentrogit
, y diciendogit c
. Corrígeme si me equivoco.En
~/.bashrc
:Vía http://29a.ch/2013/8/9/fixing-bash-autocomplete-on-ubuntu-13-04
fuente
Primero, busque el comando de finalización original. Ejemplo:
Ahora agréguelos a su script de inicio (por ejemplo, ~ / .bashrc):
La
_completion_loader
línea puede no ser requerida. Pero para algunas situaciones, la función de finalización solo se carga dinámicamente después de escribir el comando y presionarTAB
la primera vez. Entonces, si no ha utilizado el comando original y prueba el alias +TAB
, puede recibir un error como "bash: complete: function not found".fuente
La forma actualizada de hacer esto (completa no funcionaría para mí):
cd
- cambie a su directorio de iniciowget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash
source ~/git-completion.bash
a su archivo .bashrc (si no tiene este archivo, cree uno en su carpeta de inicio, bash lo buscará automáticamente)alias g='git'
a su archivo .bashrc.source ~/.bashrc
fuente
__git_complete g _git
Solo por completar, me gustaría agregar una respuesta usando el
~/.bash-completion
archivo, que se obtiene al final del script de finalización de bash:Entonces en mi
~/.bashrc
solo tengo los alias. Estaba intentando:~/.bashrc
con cosas de finalización de bash (mantenga las cosas donde corresponde) ✓Desafortunadamente, las
_xfunc
fuentes de git-complete de todos modos. Actualizaré esta respuesta una vez que descubra cómo hacerlo correctamente (también pregunté aquí en lunchpad ).fuente
Mira aquí: https://gist.github.com/scue/576310b7c6b7714aad05
¡Disfruta! (^ O ^) /
fuente
Puede definir alias como de costumbre:
Luego instale complete-alias para hacer que bash complete el alias.
fuente