95 votes

Comment faire fonctionner git-completion.bash sous Mac OS X ?

J'ai suivi http://blog.bitfluent.com/post/27983389/git-utilities-you-cant-live-without à ajouter git-completion.bash à mon /opt/local/etc/bash_completion.d/git-completion

et j'ai mis PS1='\h:\W$(__git_ps1 "(%s)") \u\$ ' dans mon .bashrc_profile

Mais maintenant j'obtiens ceci -bash: __git_ps1: command not found tout ce que je fais un cd .

Pouvez-vous me dire ce que j'ai manqué ?

0 votes

1voto

ecloud Points 111

J'utilise Brew, donc un maître bash_completion script qui exécute tous ceux dans bash_completion.d ne semble pas être fourni. Les solutions qui proposent juste d'exécuter un seul script pour ajouter des complétions git ne sont pas extensibles, car différents paquets ajouteront différents script de complétion, et vous voudrez probablement les exécuter tous. C'est pourquoi j'ai ajouté ceci (adapté d'Arch Linux) à la fin de /etc/bashrc :

# source compat completion directory definitions
BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
if [[ -d $BASH_COMPLETION_COMPAT_DIR && -r $BASH_COMPLETION_COMPAT_DIR && \
    -x $BASH_COMPLETION_COMPAT_DIR ]]; then
    for i in $(LC_ALL=C command ls "$BASH_COMPLETION_COMPAT_DIR"); do
        i=$BASH_COMPLETION_COMPAT_DIR/$i
        [[ -f $i && -r $i ]] && . "$i"
    done
fi

0voto

Andy Castille Points 2317

En complément du billet d'Adam K. Johnson

Vous pouvez également mettre...

# MacPorts Bash shell command completion
if [ -f /opt/local/etc/bash_completion ]; then
    . /opt/local/etc/bash_completion
fi

...dans votre /etc/profile, si vous voulez.

De cette façon, tous les utilisateurs du système bénéficieront de tout scripts de complétion bash installés dans le répertoire "/opt/local/etc/bash_completion.d/".

0voto

Bien que la réponse ci-dessus par grundprinzip de 2011 fonctionne toujours bien, je voulais ajouter une réponse plus récente maintenant qu'il y a maintenant un paquet Homebrew. complétion bash ( formule , repo ) qui rend la chose encore plus facile. (Cela inclut la complétion pour git ainsi que d'autres outils courants).

Aujourd'hui, macOS est livré avec Bash 3, mais vous pouvez brew install bash pour obtenir Bash 4. Si vous utilisez Bash 4, installez la nouvelle branche 2.x de bash-completion.

Bash 4

  1. Cours :

    brew install bash-completion@2
  2. Ajouter à ~/.bash_profile :

    if [ -f /usr/local/share/bash-completion/bash_completion ]; then
      . /usr/local/share/bash-completion/bash_completion
    fi

Bash 3

Si vous souhaitez conserver la version stock de bash 3.x sur macOS, suivez plutôt ces instructions.

  1. Cours :

    brew install bash-completion
  2. Ajouter à ~/.bash_profile :

    echo "[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion" >> ~/.bash_profile

Référence : http://davidalger.com/development/bash-completion-on-os-x-with-brew/

-2voto

sufery Points 39

Je pense que vous avez peut-être oublié de sourcer le fichier dans votre login .bashrc vous pouvez ajouter quelque chose comme :

. ./path/to/your/file.ext

Utilisation de . suivi d'un espace lance le fichier dans le contexte actuel.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X