Personalizar as cores da fonte do terminal Bash

0

Há pouco tempo eu perguntei esta questão, sobre como customizar o bash cores de fonte terminal. A pergunta foi respondida e eu tenho as cores desejadas, usando o link fornecido por um usuário útil.

O comando que eu estava procurando era:

export PS1="\e[1;34m\u@\H : \e[m\[$(tput sgr0)\]"

O que me dá o seguinte, na cor desejada:

user@host :

No entanto, depois de usar isso por um tempo, noto que meu terminal bash está com problemas quando gravando e acessando o histórico de comandos. Este tópico descreve o problema exato que estou tendo, e a solução é: "use \[...\] em torno das partes do PS1 que têm comprimento 0".

Eu sinto que já tentei de tudo para fazer exatamente isso no meu PS1, mas a história ainda continua com bugs. Alguém pode por favor apontar o que eu estou sentindo falta?

    
por Klicker 01.05.2017 / 21:31

1 resposta

1

Essas partes do PS1 têm comprimento 0, porque definem a formatação (usando seqüências de escape ANSI), mas não produzem nenhuma outra saída:

\e[1;34m
\e[m
$(tput sgr0)

Além disso:

  • Você pode retirar $(tput sgr0) porque \e[m faz exatamente a mesma coisa.
  • Coloque o PS1 entre aspas simples, para que as variáveis e comandos nele sejam dinâmicos, não estáticos. (Embora não seja importante nesta situação.)

Então você está procurando este comando:

export PS1='\[\e[1;34m\]\u@\H : \[\e[m\]'
    
por wjandrea 01.05.2017 / 23:33