Isso ocorre porque as partes de impressão do prompt \u
in
\w
e :
estão em colchetes com escape. Os colchetes são normalmente colocados ao redor de caracteres não imprimíveis para dizer ao bash para não mover o cursor para eles e assim calcular corretamente o tamanho do prompt. Então agora o cursor não está sendo movido corretamente para as seções de impressão.
Recomendo que você modifique as partes do seu .bashrc
que definem o prompt em vez de substituí-lo ... você pode remover o comentário (remover o #
) desta linha:
#force_color_prompt=yes
e, em seguida, modifique a segunda linha neste snippet:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
então diz:
PS1='${debian_chroot:+($debian_chroot)}\[3[00;34m\]\u \[3[0;37m\]in \[3[01;32m\][\[3[0;31m\]\w\[3[1;32m\]]\[3[0;37m\]: '
Ou se preferir, basta colocar sua substituição no final do arquivo:
PS1='\[3[00;34m\]\u \[3[0;37m\]in \[3[01;32m\][\[3[0;31m\]\w\[3[1;32m\]]\[3[0;37m\]: '
Isso alcança o que eu acho que você quer para mim no Ubuntu 16.04 e não quebra a maneira como você descreve (o que eu também experimentei antes ao jogar com meu PS1!)