bash: página do manual em cores

14

Onde eu tenho que dar uma olhada no sistema para colorir as man pages?

As páginas man são vistas com menos, então eu tentei adicionar as seguintes linhas ao meu .bashrc para mudar as cores: (Que funciona bem, btw.)

 #
 #   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, o 5;74 e o 5;146 .

Alguém pode esclarecer isso ainda mais?

    
por sjas 21.07.2012 / 19:07

4 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 de primeiro plano é alternada para amarelo / marrom (33) ou ciano (36), depois a intermitência é ativada (5) e, em seguida, outra coisa também acontece (74 ou 146), que são provavelmente indefinidos e não desejados.

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

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

Alguns emuladores de terminal tamb� suportam cores RGB diretas arbitr�ias, nesse caso, 38 devem ser seguidos por 2 e, depois, por tr� n�eros decimais no intervalo 0-255 para R, G, B respectivamente, e. # BADA55 é

\E[38;2;186;218;85m
    
por 26.04.2015 / 00:29
5

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

    
por 21.07.2012 / 19:13
1

Com a ajuda do link e do link da wikipedia, cheguei à conclusão de que 5 significa %código%.

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.

    
por 21.07.2012 / 23:48
0

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

PAGER=~/bin/vimpager

e solte isso em ~ / bin: link

    
por 07.03.2014 / 16:45