bash: page de manuel colorisée

15

Où dois-je regarder dans le système pour coloriser les pages de manuel?

Les pages de manuel sont vues avec moins, j'ai donc essayé d'ajouter les lignes suivantes à mon .bashrc pour changer les couleurs: (ce qui fonctionne bien, 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
 #########################################

À ma honte, je dois admettre que je n'ai pas découvert ce que signifiait la deuxième paire de chiffres, à savoir le 5;74et le 5;146.

Quelqu'un peut-il clarifier cela davantage?

sjas
la source
Qu'en est-il des votes serrés? J'ai déjà connu le lien wikipedia et je n'ai toujours aucune idée de ce que signifie l'ordre de la séquence. Les essais et erreurs et la définition de valeurs différentes ne m'ont pas du tout aidé. Un simple "go RTFM" ne m'aide pas ici.
sjas
Tu dois me plaisanter ... c'est tout simplement génial! Où ces informations sont-elles documentées? J'ai regardé dans les pages de manuel BASH et LESS mais je n'ai pas trouvé la chaîne LESS_TERMCAP.
ysap
OK, trouvé ceci pour les débutants: unix.stackexchange.com/questions/119/colors-in-man-pages
ysap
Ceci: " for name [ [ in [ word ... ] ] ; ] do list ; done" a plus de sens maintenant, en couleur ... 8-)
ysap
@ysap: Je n'ai pas vu ces liens et je ne me souviens pas où j'ai trouvé cela. Mettez ceci ici à des fins de documentation et interrogé sur les séquences d'échappement dans le processus. :)
sjas

Réponses:

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

Dans ces deux cas, toutes les couleurs et tous les attributs sont réinitialisés (0), la couleur de premier plan est commutée sur jaune / brun (33) ou cyan (36), puis le clignotement est activé (5), puis quelque chose d'autre se produit également ( 74 ou 146) qui sont probablement indéfinis et non souhaités.

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

Celui-ci est différent, car 38 prend des paramètres numériques supplémentaires. Il représente la couleur de premier plan étendue (et de même 48 serait la même chose pour l'arrière-plan), et s'il est suivi d'un 5 comme paramètre suivant (qui n'a rien à voir avec le clignotement cette fois), le troisième nombre spécifie l'index de la couleur ( de 0 à 255: 16 anciennes couleurs standard, suivies d'un cube RVB 6x6x6, suivi de 24 couleurs en niveaux de gris), voir par exemple ici .

Certains émulateurs de terminal prennent également en charge les couleurs RVB arbitraires directes, dans ce cas, 38 doit être suivi de 2, puis de trois nombres décimaux dans la plage 0-255 pour R, G, B respectivement, par exemple # BADA55 est

\E[38;2;186;218;85m
egmont
la source
1
Il est assez regrettable que vous ne puissiez pas savoir quels ;sont les paramètres supplémentaires d'un précédent et quels sont ceux d'un tout nouveau sans regarder les chiffres exacts. Il a donc été recommandé que les paramètres supplémentaires soient séparés par un à la :place. Par exemple, pour tout réinitialiser, passez à la couleur # 246 et activez également le clignotement, au lieu de 0;38;5;246;5ce que vous diriez 0;38:5:246;5. Malheureusement, il est pris en charge par encore moins de terminaux.
egmont
5

"\ e [... m" est le code SGR CSI. La page Wikipedia sur "Code d'échappement ANSI", section "Codes CSI" les décrit.

Ignacio Vazquez-Abrams
la source
1

Avec l'aide de http://invisible-island.net/xterm/ctlseqs/ctlseqs.html et du lien wikipedia, je suis arrivé à la conclusion que cela 5signifie 5 Blink: Slow less than 150 per minute.

Les derniers chiffres ressemblent à ceci:

 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 .

Il semble également que la quantité de chiffres ne soit pas importante, juste leur ordre chronologique.

sjas
la source
0

Pas exactement une solution bash, mais toujours pertinente, utilisez:

PAGER = ~ / bin / vimpager

et déposez-le dans ~ / bin: https://github.com/rkitover/vimpager

Bruce Edge
la source