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?

sjas
fonte
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
OK, achei isso para iniciantes: unix.stackexchange.com/questions/119/colors-in-man-pages
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
Egmont
fonte
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
5

"\ e [... m" é o código SGR CSI. A página da Wikipedia na seção "código de escape ANSI", "códigos CSI" os descreve.

Ignacio Vazquez-Abrams
fonte
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.

sjas
fonte
0

Não é exatamente uma solução do bash, mas ainda é relevante, use:

PAGER = ~ / bin / vimpager

e solte isso em ~ / bin: https://github.com/rkitover/vimpager

Bruce Edge
fonte