bash: pokolorowana strona podręcznika


15

Gdzie muszę zajrzeć do systemu, aby pokolorować strony podręcznika?

Strony podręcznika są wyświetlane z mniejszą liczbą, więc próbowałem dodać następujące wiersze do mojego .bashrc, aby zmienić kolory: (Który działa dobrze, 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
 #########################################

Do mojego wstydu muszę przyznać, że nie dowiedzieć się, co druga liczba par oznaczało, czyli 5;74a 5;146.

Czy ktoś może to wyjaśnić?


O co chodzi z bliskimi głosami? Znam już link do Wikipedii i nadal nie mam pojęcia, co oznacza kolejność sekwencji. Próba i błąd oraz ustawienie różnych wartości wcale mi nie pomogło. Proste „go RTFM” nie pomaga mi tutaj.
sjas

Żartujesz sobie ze mnie ... to jest po prostu świetne! Gdzie jest to udokumentowane? Szukałem na stronach podręcznika BASH i LESS, ale nie mogłem znaleźć łańcucha LESS_TERMCAP.
ysap


To: „ for name [ [ in [ word ... ] ] ; ] do list ; done” ma teraz większy sens, w kolorze ... 8-)
ysap

@ysap: Nie widziałem tych linków i nie pamiętam, gdzie to znalazłem. Umieść to tutaj w celu dokumentacji i zapytaj o sekwencje specjalne w procesie. :)
sjas

Odpowiedzi:


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

W tych dwóch przypadkach wszystkie kolory i atrybuty są resetowane (0), kolor pierwszego planu jest zmieniany na żółty / brązowy (33) lub cyjan (36), następnie miganie jest włączone (5), a następnie dzieje się coś innego ( 74 lub 146), które są prawdopodobnie niezdefiniowane i niepożądane.

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

Ten jest inny, ponieważ 38 przyjmuje dodatkowe parametry numeryczne. Oznacza rozszerzony kolor pierwszego planu (i podobnie 48 będzie takie samo dla tła), a jeśli po nim pojawi się 5 jako kolejny parametr (który nie ma nic wspólnego z miganiem tym razem), trzecia liczba określa indeks koloru ( od 0 do 255: 16 standardowych kolorów starszych, następnie sześcian RGB 6x6x6, a następnie 24 kolory w skali szarości), patrz np . tutaj .

Niektóre terminalowe emulatory obsługują również bezpośrednie arbitralne kolory RGB, w takim przypadku po 38 powinny następować 2, a następnie trzy liczby dziesiętne w zakresie 0–255 odpowiednio dla R, G, B, np. # BADA55 to

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

1
Szkoda, że ​​nie możesz wiedzieć, które ;oznaczają dodatkowe parametry poprzedniego, a które zupełnie nowe, nie patrząc na dokładne liczby. Zalecono więc oddzielenie dodatkowych parametrów :zamiast. Na przykład, aby zresetować wszystko, a następnie przełączyć na kolor # 246, a także włączyć miganie zamiast 0;38;5;246;5powiedzieć 0;38:5:246;5. Niestety jest obsługiwany przez jeszcze mniej terminali.
egmont


1

Z pomocą http://invisible-island.net/xterm/ctlseqs/ctlseqs.html i linku wikipedii doszedłem do wniosku, że 5to znaczy 5 Blink: Slow less than 150 per minute.

Ostatnie liczby brzmią następująco:

 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 .

Wydaje się również, że liczba liczb nie jest ważna, tylko ich chronologiczny porządek.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.