Definindo códigos de cores em rxvt-unicode

4

Usando algumas das ferramentas node.js como mocha no meu terminal urxvt , tenho alguns problemas com a saída colorida. Alguns dos textos que estão usando o código de cor 90, como você pode ver, aqui desaparecerão no terminal.

tput colors output é: 256

E usando este comando:

(x='tput op' y='printf %76s';for i in {0..256};do o=00$i;echo -e ${o:${#o}-3:3} 'tput setaf $i;tput setab $i'${y// /=}(x='tput op' y='printf %76s';for i in {0..256};do o=00$i;echo -e ${o:${#o}-3:3} 'tput setaf $i;tput setab $i'${y// /=}$x;done)$x;done)

Parece que tenho todas as cores disponíveis.

Mas quando tento ecoar algo assim:

echo '\e[0;90m shahin \e[m '

Haverá apenas uma linha vazia impressa! Existe alguma maneira de definir esse código de cor manualmente?

Obrigado a todos!

Atualização: Eu acho que algumas imagens descreverão a situação muito melhor. Aqui está uma imagem do comando echo em finalterm terminal:

Eaquieucolocooresultadodeurxvt:

E aqui está o resultado de este perl script que é executando no mesmo urxvt :

    
por Shahinism 11.08.2014 / 21:19

2 respostas

0

O problema não é que a cor não seja visível,
é exatamente o mesmo que o fundo do terminal, cinza escuro, por exemplo.

Existe uma cor que é essencialmente transparente, mostrando a cor padrão do terminal por baixo. Mas não é certo que esta cor está em uso - pode ser que a cor "preta" usada para o fundo seja na verdade a mesma cinza escura que você usa para o primeiro plano.

Se possível, abra um tópico que permite experimentar as configurações de cores facilmente com um GUI, como konsole ou gnome-terminal , e mostra claramente o que você pode alterar. Ou experimente apenas em rxvt-unicode se for adequado.

Eu acho que você terá pelo menos alguma pista do que está errado, se não uma solução.

Se não for resolvido, apresente suas novas informações aqui e trabalhemos os detalhes.


Sidenote:

Eu não obtive seu longo comando para trabalhar copiando e colando, mas pode ser semelhante a% colortest-256

do pacote colortest no Ubuntu, etc.

Experimente colortest-16 também, isso pode ajudar a explicar seu problema.
Se não, poste uma captura de tela!

    
por 11.08.2014 / 22:18
1

Você está usando a seqüência de escape errada.

É próximo (começa com escape [, termina com m ), mas os parâmetros errados.

Existem pelo menos três sequências de escape SGR (select graphic rendition) que são usadas para imprimir cores em terminais xterm e similares:

  • ANSI (cores 0 a 7), que usa os parâmetros 30 a 37 (primeiro plano) e 40 a 47 (plano de fundo)
  • aixterm (cores 8-15), que usam os parâmetros 90-97 (primeiro plano) e 100-107 (fundo)
  • 256colors (cores 0-255), que usam códigos 38;5; parâmetro (primeiro plano) e 48;5; parâmetro (plano de fundo)

Então você selecionou a cor do primeiro plano aixterm 8. Por convenção, essas são mostradas como versões mais claras das cores 0-7. A cor ANSI 0 é preto . O preto brilhante é ... dependendo do terminal, pode ser cinza. Pode ser apenas preto.

Talvez você quisesse dizer algo assim:

echo '\e[0;38;5;90m shahin \e[m '

embora isso seja portável:

printf '3[0;38;5;90m shahin 3[m \n'

Leitura adicional:

por 16.05.2016 / 00:47