bash:カラー化されたmanページ


15

manページを色付けするために、システムのどこを見る必要がありますか?

マニュアルページの表示は少ないため、.bashrcに次の行を追加して色を変更しようとしました(どちらが正常に動作しますか)。

 #
 #   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
 #########################################

残念なことに、2番目の数字のペアが何を意味するのか、つまり5;74とを見つけられなかったことを認めなければなりません5;146

誰かがそれをさらに明確にすることはできますか?


近い投票でそれは何ですか?私は以前にウィキペディアのリンクを知っていましたが、シーケンスの順序が何を意味するのかまだわかりません。試行錯誤と異なる値の設定はまったく役に立ちませんでした。単純な「go RTFM」はここでは役に立ちません。
sjas

あなたは私をからかっていなければならない...これはちょうど素晴らしいです!この資料はどこに文書化されていますか?BASHおよびLESSのマニュアルページを調べましたが、LESS_TERMCAP文字列が見つかりませんでした。
ysap

OK、これは初心者向けです:unix.stackexchange.com/questions/119/colors-in-man-pages
ysap

これ:「for name [ [ in [ word ... ] ] ; ] do list ; done」は色で意味があります... 8
ysap

@ysap:そのリンクを見たことがなく、どこで見つけたか覚えていない。これを文書化のためにここに置き、プロセスのエスケープシーケンスについて尋ねました。:)
sjas

回答:


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

これらの2つのケースでは、すべての色と属性がリセット(0)され、前景色が黄色/茶色(33)またはシアン(36)に切り替えられ、点滅がオン(5)になり、他の何かが発生します( 74または146)これらはおそらく未定義であり、望ましくありません。

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

38は追加の数値パラメーターを受け取るため、これは異なります。これは拡張された前景色を表し(同様に48は背景も同じです)、次のパラメーターとして5が続く場合(今回は点滅とは関係ありません)、3番目の数値は色のインデックスを指定します( 255から0から:24のグレースケールの色が続く6x6x6 RGB立方体)に続いて16羽の標準的なレガシー色、例えば、参照ここ

特定の端末エミュレーターは、直接任意のRGBカラーもサポートします。その場合、38の後に2が続き、R、G、Bのそれぞれ0〜255の範囲の3つの10進数が続きます。たとえば、#BADA55は

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

1
どれ;が前のパラメーターの追加パラメーターを表し、どれが正確な数値を見ずに真新しいことを表すかを知ることができないのは非常に悪いことです。そのため、追加のパラメーターは:代わりにで区切ることをお勧めしました。たとえば、すべてをリセットしてから、色#246に切り替えて、の代わりに点滅をオンにし0;38;5;246;5ます0;38:5:246;5。残念ながら、さらに少ない端末でサポートされています。
エグモント


1

http://invisible-island.net/xterm/ctlseqs/ctlseqs.htmlとウィキペディアのリンクの助けを借りて、という5意味の結論に達しました5 Blink: Slow less than 150 per minute

最後の数字は次のように聞こえます。

 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 .

また、数字の量は重要ではなく、時系列順になっているようです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.