Ignora PS1 para a configuração “Use Bright Colors for bold text”

0

Estou em um Mac usando o iTerm2. Existe uma configuração chamada Draw bold text in bright colors ; O problema com essa configuração é que ela também afeta meu texto PS1 . Existe uma maneira de fazer isso para tudo, exceto PS1 ?

Isto é o que a minha parece se isso for importante:

declare __host='\[\e[30;102m\] \h \[\e[0m\]';
declare __dir='\[\e[1;97;44m\] \w \[\e[22m\]';
declare __arrow='\[\e[1m\]▸ \[\e[0m\]';

function __git_status() {
  local info;
  info=$(__git_info) && printf '\e[30;43m%s' "$info";
}

PS1="$__host$__dir"'$(__git_status)'"$__arrow ";

A cor __arrow vem de __dir ou __git_status e, com essa configuração ativada, a cor da seta é alterada, uma vez que ela fica em negrito.

    
por Nxt3 05.09.2018 / 21:21

1 resposta

1

curto: não, o PS1 usa as mesmas sequências de escape que "todo o resto"

longo:

Você pode desativar o negrito na seta:

declare __arrow='\[\e[22m\]▸ \[\e[0m\]';

Na verdade, como __dir a desativa, isso é redundante (a menos que $(git_status) tenha algumas seqüências de escape).

O 22 desativa negrito sem afetar outros atributos de vídeo e é definido em ECMA-48 (bem como em outros lugares, como Sequências de controle do XTerm ):

            Ps = 2 2  -> Normal (neither bold nor faint).
    
por 05.09.2018 / 22:12

Tags