Isso parece um pouco relacionado:
Wrapping the
tput
output in\[ \]
is recommended by the Bash man page. This helps Bash ignore non-printable characters so that it correctly calculates the size of the prompt.
Fonte .
"A tput
output" no seu caso é assim: \e[1;35m
ou \e[0;35m
(há dois fragmentos separados para embrulhar).
Eu modifiquei seu PS1
:
export PS1='\[\e[1;35m\][\u:\w]\$\[\e[0;35m\] '
e parece funcionar para mim sem o problema.