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.