Você baniu completamente a idéia do shell Bourne Again do que foi impresso e o que ele tem que apagar / reescrever, pois exibe o histórico de comandos e permite editar a linha de comando.
Quebrar o seu aviso em seções:
-
\[\e]0;\u@\h: \w\a\]
- caracteres não imprimíveis, incluídos corretamente -
${debian_chroot:+($debian_chroot) }
- imprimindo apenas caracteres, presumivelmente -
\[3[01;36m\]
- caracteres não imprimíveis, incluídos corretamente -
\u@\h
- apenas caracteres de impressão -
\[3[00m\]
- caracteres não imprimíveis, incluídos corretamente -
3[01;34m\]
- caracteres não imprimíveis, impropriamente fechados para que o shell Bourne Again não saiba que eles são -
\w3[00m\]
- uma mistura errônea de caracteres de impressão e não impressão -
[$(type __git_ps1 >/dev/null 2>&1 && __git_ps1 "(%s)")]
- imprimindo apenas caracteres, presumivelmente
Eu dei este conselho antes , mas é um conselho geral que se aplica aqui também:
- Use
\e
ou3
de forma consistente para sua própria sanidade. - Faça com que seus pares de não aninhamento coincidam com
\[
e\]
. - Certifique-se de que todas sequências não impressas estejam em
\[
e\]
(e que, inversamente, todas as sequências de impressão não sejam).
(É por isso que eu pessoalmente prefiro o Z Shell e seu mecanismo alternativo de expansão de prompt para quando eu quiser prompts coloridos malucos. sabe que coisas como %F{green}
não são sequências de impressão, sem para ser informado, e também funciona as seqüências de escape corretas de terminfo
, sem tê-los conectados.