Question

je mets ce qui suit dans mon dossier ~ / .localsh pour personnaliser mon bash rapidement lorsque vous travaillez avec git.

En fait, je veux obtenir la branche courante affichée dans mon terminal. L'outil gitk branches de spectacles avec fond vert et noir de premier plan, donc ce que je suis en train de le faire.

Ce que je fonctionne, mais quand j'appuyez sur la flèche sur le clavier pour revenir en arrière grâce à des commandes précédentes, il est écrasé.

Ce truc est arrivé à être avant quand vous je din't une séquence de fin à la couleur avec [\ e [0 m]. Maintenant, il me arrive que d'appeler la fonction getgitbranch. Je pense qu'il a quelque chose à voir avec le terminal de ne pas savoir combien de temps l'invite est.

Alors, voici la question ... Comment puis-je utiliser rapidement des éléments dynamiques correctement dans mon bash et non l'obtenir lavé au jet quand j'utiliser les flèches vers le haut?

function getgitbranch()
{
git branch | grep "^\*" | cut -c3-
}

function blabla()
{
PS1=""
PS1="$PS1\[\e[0;30m\]\[\e[42m\]\[\$(getgitbranch)\]\[\e[0;49m\]\[\e[0m\] "
PS1="$PS1\[\e[1;35m\][\[\e[0m\]"
PS1="$PS1\[\e[1;33m\]\w\[\e[0m\]"
PS1="$PS1\[\e[1;35m\]]\[\e[0m\]"
PS1="$PS1 \[\e[1;31m\]>\[\e[0m\] "
export PS1
}
Était-ce utile?

La solution

Retirez le \[\] du monde $(getgitbranch). Les caractères émis par cette fonction occupent effectivement l'espace sur l'écran afin que vous voulez Bash pour compte pour eux. En utilisant \[\] dit ne pas compter les caractères qui apparaissent dans.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top