Este mensaje hace que los terminales se ajusten a mitad de la pantalla, ¿por qué?

Este mensaje hace que los terminales se ajusten a mitad de la pantalla, ¿por qué?

Tengo el siguiente mensaje de 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 "

lo que pasa es que al escribir y llega a la mitad del terminal, enviará el cursor al principio de la línea y se sobrescribirá como:

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 

(el resto de la cadena grave reemplaza el comienzo)

¿Alguna idea de por qué? (Estoy usando el terminal estándar OSX y el terminal IntelliJ... todos hacen lo mismo)

Respuesta1

Debe incluir todas las secuencias de escape no imprimibles entre \[y \]. Por ejemplo:

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

[Muestra solo una parte de su mensaje. Haz lo mismo para descansar.]

información relacionada