O problema é o seu prompt:
export PS1="\n[$(date +%r)] \e]0;\e[0;32m\u\e[m@\e[38;5;52m\h\e[m:\e[38;5;240m\w\e[m\e[97m$\e[m"
Para fazer o bash ignorar as seqüências de escape (que são não-imprimíveis), você tem que colocar entre aquelas com \[
e \]
.
Caso contrário, o bash conta isso como parte do tamanho do seu prompt na tela e fica confuso sobre quando o terminal irá automaticamente para a próxima linha.
Algo como isso ajudaria:
export PS1="\n[$(date +%r)] \[\e]0;\e[0;32m\]\u\[\e[m\]@\[\e[38;5;52m\]\h\[\e[m\]:\[\e[38;5;240m\]\w\[\e[m\e[97m\]$\[\e[m\]"