Mon prompt bash est tout cassé ! 23
jeudi 14 janvier 2016 à 10:43Ça m’était déjà arrivé plusieurs fois après avoir ajouté mon env virtuel et ma branch git dans mon prompt : soudainement il se met à faire n’importe quoi. Des mixes de caractères, des sauts de ligne qui se font pas, la fusion de la ligne de commande sur elle-même.
Inutilisable.
Aujourd’hui plutôt que de subir le problème, j’ai cherché une solution, et pouf : quand on utilise des couleurs dans son prompt, il faut entourer tout le balisage de []
.
Mais le balisage qui colore le prompt est composé de séquences d’échappements, qui contiennent aussi []
, donc il faut mettre des anti-slash.
Du coup on passe de ça :
export PS1="\[\033[01;34m\]\$(basename '$VIRTUAL_ENV')\e[0m $PS1"
à :
export PS1="\[\033[01;34m\]\$(basename '$VIRTUAL_ENV')[\e[0m] $PS1"
à la solution qui marche :
export PS1="\[\033[01;34m\]\$(basename '$VIRTUAL_ENV')\[\e[0m\] $PS1"
Évidemment à appliquer à tous les codes d’échappement chelou qu’on a réparti un peu partout.
J’ai un tampon prêt à tirer pour le premier qui me parle de zsh.