Qual terminal é esse? Adicione a saída de echo $TERM
à sua pergunta.
Isso pode acontecer quando você tiver seqüências de escape (geradas por tput
) em seu prompt que não está cercado por \[
e \]
. Esses colchetes invertidos dizem ao Bash que as seqüências de escape não ocupam nenhum espaço horizontal na tela. Sem eles em torno das sequências de escape, Bash conta cada byte da sequência de escape como um caracter visível, o que atrapalha os comandos exibidos anteriormente à medida que você avança no histórico de comandos.
Para verificar se você tem sequências de escape no seu prompt, use echo "$PS1" | od -c
e procure caracteres com o valor 033
. Se você identificar esses, você terá seqüências de escape no seu prompt.
Se você encontrar 033
no seu prompt
Verifique onde o prompt PS1
está definido: grep -i ps1 .*|less
Em seguida, edite esse arquivo (geralmente está em .bashrc
) e coloque a seqüência em volta de \[
e \]
.