LS_COLORS para terminal de 256 cores

3

Eu pensei que as cores são definidas como

<file_type>=[<bg(40-47)>];<font_spec(0:5)>;<font_color(30-37)>

mas recentemente encontrei onde há mais cores e cores como, por exemplo:

.tar    00;38;5;61

para um terminal de 256 cores.

O que essa definição significa?

    
por BaRud 21.05.2015 / 00:53

1 resposta

6

O argumento para uma diretiva LS_COLORS é uma string que é gravada no terminal como parte de uma seqüência de escape. Ao exibir um nome de arquivo, ls escreve \e[ , a sequência associada ao tipo de arquivo, m , o nome do arquivo e \e[0m (onde \e representa um caractere de escape). Esta é a seqüência de escape que informa ao xterm e aos terminais compatíveis (que são a maioria deles hoje em dia) para alterar cores e outros atributos de texto ( CSI Pm m no documentation . ls não se importa com o significado da sequência de caracteres ou quantos pontos e vírgulas contém.

Os terminais antigos suportavam apenas 8 cores de primeiro plano, designadas pelos números de 30 a 37. Os terminais que suportam mais cores usam a seqüência de escape \e[38;5;Psm , em que Ps é um número de cores ou \e[38;2;Pr;Pg;Pbm Pr , Pg , Pb são valores RGB. Estes podem ser combinados com outros atributos, por ex. \e38;5;61;1m ou \e38;2;95;95;175;1m para texto em azul ardósia em negrito.

    
por 21.05.2015 / 04:30