bash: página de manual colorida


15

Onde devo dar uma olhada no sistema para colorir as páginas de manual?

As páginas do manual são exibidas com menos, então tentei adicionar as seguintes linhas ao meu .bashrc para alterar as cores: (O que funciona bem, aliás.)

 #
 #   L E S S   C O L O R S   F O R   M A N   P A G E S
 #

 # CHANGE FIRST NUMBER PAIR FOR COMMAND AND FLAG COLOR
 # currently 0;33 a.k.a. brown, which is dark yellow for me 
    export LESS_TERMCAP_md=$'\E[0;33;5;74m'  # begin bold

 # CHANGE FIRST NUMBER PAIR FOR PARAMETER COLOR
 # currently 0;36 a.k.a. cyan
    export LESS_TERMCAP_us=$'\E[0;36;5;146m' # begin underline

 # don't change anything here
    export LESS_TERMCAP_mb=$'\E[1;31m'       # begin blinking
    export LESS_TERMCAP_me=$'\E[0m'           # end mode
    export LESS_TERMCAP_se=$'\E[0m'           # end standout-mode
    export LESS_TERMCAP_so=$'\E[38;5;246m'    # begin standout-mode - info box
    export LESS_TERMCAP_ue=$'\E[0m'           # end underline

 #########################################
 # Colorcodes:
 # Black       0;30     Dark Gray     1;30
 # Red         0;31     Light Red     1;31
 # Green       0;32     Light Green   1;32
 # Brown       0;33     Yellow        1;33
 # Blue        0;34     Light Blue    1;34
 # Purple      0;35     Light Purple  1;35
 # Cyan        0;36     Light Cyan    1;36
 # Light Gray  0;37     White         1;37
 #########################################

Para minha vergonha, tenho que admitir que não descobri o que o segundo par de números significava, ou seja, oe 5;74o 5;146.

Alguém pode esclarecer isso mais?


O que há com os votos próximos? Eu conhecia o link da wikipedia antes e ainda não tenho idéia do que a ordem da sequência significa. Tentativa e erro e definir valores diferentes não me ajudaram em nada. Um simples "ir RTFM" não me ajuda aqui.
SJul

Você deve estar brincando comigo ... isso é ótimo! Onde esse material está documentado? Procurei nas páginas de manual BASH e LESS, mas não consegui encontrar a sequência LESS_TERMCAP.
ysap


Isto: " for name [ [ in [ word ... ] ] ; ] do list ; done" faz mais sentido agora, em cores ... 8-)
ysap 23/01

@ syap: Não vi esses links e não consigo me lembrar de onde eu encontrei isso. Coloque isso aqui para fins de documentação e pergunte sobre as seqüências de escape no processo. :)
sjas

Respostas:


1
export LESS_TERMCAP_md=$'\E[0;33;5;74m'  # begin bold
export LESS_TERMCAP_us=$'\E[0;36;5;146m' # begin underline

Nesses dois casos, todas as cores e atributos são redefinidos (0), a cor do primeiro plano é alterada para amarelo / marrom (33) ou ciano (36), a piscada é ativada (5) e, em seguida, acontece outra coisa ( 74 ou 146), provavelmente indefinidas e não desejadas.

export LESS_TERMCAP_so=$'\E[38;5;246m'

Essa é diferente, porque 38 usa parâmetros numéricos adicionais. Significa cor de primeiro plano estendida (e 48 semelhante seria o mesmo para segundo plano) e, se seguido de um 5 como o próximo parâmetro (que não tem nada a ver com piscar desta vez), o terceiro número especifica o índice da cor ( de 0 a 255: 16 cores herdadas padrão, seguidas por um cubo RGB de 6x6x6, seguido por 24 cores em escala de cinza), veja, por exemplo, aqui .

Certos emuladores de terminal também suportam cores RGB arbitrárias diretas; nesse caso, 38 devem ser seguidos por 2 e, em seguida, por três números decimais no intervalo de 0 a 255 para R, G, B, respectivamente, por exemplo, # BADA55 é

\E[38;2;186;218;85m

1
É muito ruim que você não saiba o que ;significa parâmetros adicionais de um anterior e o que significa um novo sem consultar os números exatos. Portanto, foi recomendado que parâmetros adicionais fossem separados por um :. Por exemplo, para redefinir tudo, mude para a cor # 246 e também ligue a piscar, em vez de 0;38;5;246;5você diria 0;38:5:246;5. Infelizmente, é suportado por ainda menos terminais.
egmont


1

Com a ajuda de http://invisible-island.net/xterm/ctlseqs/ctlseqs.html e o link da wikipedia, cheguei à conclusão de que isso 5significa 5 Blink: Slow less than 150 per minute.

Os últimos números são assim:

 If 88- or 256-color support is compiled, the following apply. 
 P s = 3 8 ; 5 ; P s  Set foreground color to the second P s . 
 P s = 4 8 ; 5 ; P s  Set background color to the second P s .

Também parece que a quantidade de números não é importante, apenas sua ordem cronológica.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.