Почему эта подсказка заставляет терминалы переворачиваться посередине экрана?

Почему эта подсказка заставляет терминалы переворачиваться посередине экрана?

У меня следующее приглашение PS1:

export PS1="\e[1m\e[38;5;198m\u\e[0m @ \e[1m\e[38;5;208m\h\e[0m : \e[1m\w\e[0m\e[38;5;226m\$(parse_git_branch)\e[0m \e[1m>>>\e[0m "

происходит следующее: при наборе текста и достижении середины терминала курсор перемещается в начало строки и перезаписывается следующим образом:

rossid @ HOST : /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents >>>

oussid @ HOST : /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents >>>  this is just a test to show what happens nothing seri 

(остальная часть строки серьезно заменяет начало)

Есть идеи, почему? (Я использую стандартный терминал OSX и терминал IntelliJ... все делают одно и то же)

решение1

Вам необходимо заключить все непечатаемые управляющие последовательности между \[и \]. Например:

  PS1="\[\e[1m\]\[\e[38;5;198m\]\u\[\e[0m\] @ "

[Показывает только часть вашей подсказки. Сделайте то же самое для остальной части.]

Связанный контент