PS1 env variable ne fonctionne pas sur mac
J'ai un script(pas écrit par moi-même) qui montre la branche git/svn branche dans mon invite de commande. Personne ne sait pourquoi cela ne fonctionnerait pas sur mac? Il fonctionne parfaitement sous linux.
De https://github.com/xumingming/dotfiles/blob/master/.ps1:
# Display ps1 with colorful pwd and git status
# Acording to Jimmyxu .bashrc
# Modified by Ranmocy
# --
if type -P tput &>/dev/null && tput setaf 1 &>/dev/null; then
color_prompt=yes
else
color_prompt=
fi
__repo () {
branch=$(type __git_ps1 &>/dev/null && __git_ps1 | sed -e "s/^ (//" -e "s/)$//")
if [ "$branch" != "" ]; then
vcs=git
else
branch=$(type -P hg &>/dev/null && hg branch 2>/dev/null)
if [ "$branch" != "" ]; then
vcs=hg
elif [ -e .bzr ]; then
vcs=bzr
elif [ -e .svn ]; then
vcs=svn
else
vcs=
fi
fi
if [ "$vcs" != "" ]; then
if [ "$branch" != "" ]; then
repo=$vcs:$branch
else
repo=$vcs
fi
echo -n "($repo)"
fi
return 0
}
if [ "$color_prompt" = yes ]; then
# PS1='\[\e[01;32m\]\u@\h\[\e[00m\]:\[\e[01;34m\]\w\[\e[33;40m\]$(__repo)\[\e[00m\]$ '
PS1='\[\e[01;32m\]\u\[\e[00m\]:\[\e[01;34m\]\W\[\e[33m\]$(__repo)\[\e[00m\]$ '
else
PS1='\u@\h:\w$(__repo)$ '
fi
unset color_prompt
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;\W\a\]$PS1"
;;
*)
;;
esac
Je vais aller sur une branche et suggèrent qu'il est "Comment puis-je le faire fonctionner sur Mac?"
Hmm, l'éditeur suggère que c'est "Pourquoi n'est-ce pas fonctionner sur Mac?"
Putain! J'étais si proche!
Hmm, l'éditeur suggère que c'est "Pourquoi n'est-ce pas fonctionner sur Mac?"
Putain! J'étais si proche!
OriginalL'auteur James.Xu | 2012-05-03
Vous devez vous connecter pour publier un commentaire.
Mac OS X installations de Git n'ont pas
__git_ps1
inclus.Utilisation:
comme une substitution.
\(*.*)/
hourra pour le grep\(*.*)/
Pas une belle solution, mais j'ai eu le même problème il y a un moment et c'est ce que j'ai trouvé et mis dans mon
.profile
. Probablement que je n'étais pas en mesure d'en obtenir un meilleur. Je serais heureux de le voir.merci beaucoup, ça marche!!!
Vous pouvez obtenir le "plein" la définition de
__git_ps1
ici. github.com/git/git/blob/master/contrib/completion/... C'est un peu lourd, mais vous donne de nice informations sur la relocalisation, la fusion, etc.En fait, le git-osx-installer vient avec
git-completion.bash
et l'installe à/usr/local/git/contrib/completion/
. Juste la source de ce fichier à partir de votre.bash_profile
pour obtenir__git_ps1
.OriginalL'auteur
Le script que vous avez fourni ne parvient pas à détecter git repos si la commande
__git_ps1
échoue. Ajoutez à cela~/.bash_profile
:En supposant que vous avez stocké le fichier de script comme
~/.ps1
, ajoutez aussi:OriginalL'auteur
Sur un nouveau Yosemite mac à l'aide intégrée dans git, j'ai utilisé ceci:
Remarque: sur El Capitan, j'ai dû changer le chemin d'accès de l'git scripts pour
/Applications/Xcode.app/Contents/Developer/usr/share/git-core
et je suppose que vous devez avoir XCode installé pour que cela fonctionne.OUI, MONSIEUR, a parfaitement fonctionné.
OriginalL'auteur
Si vous avez installé git via macports (git-core), vous devez ajouter la ligne suivante à
~/.bash_profile
:L'emplacement de l'git-prompt.sh semblait avoir changé quelques fois.
OriginalL'auteur