マニュアルページの色


63

「コンソール」(ではなくxterm)のマニュアルページを見ると、色が見えますが、で表示されませんxterm(例konsole)これを有効にする方法はありますか?うまくいけば、かなり簡単なソリューションですか?

回答:


78

このtermcap(5)機能を使用する必要があります。いくつかのUnixのmanページには、このツールが廃止され、使用することを言いますterminfoが、それはまだ上で利用できる他の人(とterminfoもっと複雑です)。

さらに重要なのは、をless使用することtermcapです。


の色を設定する less

lessand man(これを使用するless)が色を持つように、次のことを行います。

$ cat ~/.LESS_TERMCAP 
export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) # green
export LESS_TERMCAP_md=$(tput bold; tput setaf 6) # cyan
export LESS_TERMCAP_me=$(tput sgr0)
export LESS_TERMCAP_so=$(tput bold; tput setaf 3; tput setab 4) # yellow on blue
export LESS_TERMCAP_se=$(tput rmso; tput sgr0)
export LESS_TERMCAP_us=$(tput smul; tput bold; tput setaf 7) # white
export LESS_TERMCAP_ue=$(tput rmul; tput sgr0)
export LESS_TERMCAP_mr=$(tput rev)
export LESS_TERMCAP_mh=$(tput dim)
export LESS_TERMCAP_ZN=$(tput ssubm)
export LESS_TERMCAP_ZV=$(tput rsubm)
export LESS_TERMCAP_ZO=$(tput ssupm)
export LESS_TERMCAP_ZW=$(tput rsupm)
export GROFF_NO_SGR=1         # For Konsole and Gnome-terminal

そして、私の中で~/.bashrc、私はこれを行います:

# Get color support for 'less'
export LESS="--RAW-CONTROL-CHARS"

# Use colors for less, man, etc.
[[ -f ~/.LESS_TERMCAP ]] && . ~/.LESS_TERMCAP

注:変数に関するドキュメントをLESS_TERMCAP_*参照してくださいこれがどのように機能するかについて。

最終結果

    ss of manページ


7
X11のものが下線をサポートするので、「コンソール」が「下線」を色に変換するため、これが機能する理由は信じています。この理論をテストするecho -e "\e[04mhello world\e[0m"には、コンソールとX11端末の両方に入力して、違いを確認します。そのため、上記のハックはtermcapを悪用して、太字/下線のためにどのコードを発行する必要があるかについて嘘をつき、代わりにカラーエスケープコードを生成するように強制します。
ケントフレドリック

7
実際、下線を青に変換することには歴史的な理由があり、元のPCグラフィックアダプターであるMDAおよびCGAのテキストモードに戻ります(実際にはCGAテキストモードは現在でも利用可能です)。これらのグラフィックアダプターは、文字ごとに2バイトを格納しました。1つはASCIIコードを保持し、もう1つは属性を保持します。MDAは属性バイトを下線、明るい、点滅、逆の組み合わせとして解釈し、CGAはそのバイトを前景色と背景色として解釈しました。そして、下線のMDA属性が黒の青のCGA属性と等しいことが起こりました。
celtschk

3
これはKonsoleまたはGnome-terminalでは機能しません。それらを設定しましたが、色の変更はカーソルとステータスページのみです。必要なのは次のとおりexport GROFF_NO_SGR=1です。
CMCDragonkai

2
それはたくさんのサブシェルが作成されたものです。この単純なアプローチに対する利点は何ですか?
トム・ヘイル

1
@TomHale、主にシステム間/端末間の互換性(および明確な方法で他の人とスクリプトを共有する機能)。異なる制御コードを使用するボックスで作業していることに気付き、シェルプロファイルをscp / rsyncして、その例のように制御コードがすべてハードコーディングされている場合、宛先で期待どおりに動作しない可能性がありますマシン、そしてあなたは文字化けした出力で終わる可能性があります。もちろん、スクリプトが1つまたは2つの既知のマシン/ターミナルエミューでのみ実行される場合は、ハードコーディングされたアプローチで十分です。
マーク

15

たとえば、などの別のページャーを使用して、この問題を解決できmostます。環境変数でman指定されたプログラムを実際に使用しPAGERます。男(1)のmanページ:

MANPAGER、PAGER

$ MANPAGERまたは$ PAGERが設定されている場合($ MANPAGERが優先的に使用されます)、その値はマニュアルページの表示に使用されるプログラムの名前として使用されます。デフォルトでは、ページャー-sが使用されます。

値は、単純なコマンド名または引数付きのコマンドの場合があり、シェルの引用符(バックスラッシュ、一重引用符、または二重引用符)を使用する場合があります。

パイプを使用して複数のコマンドを接続することはできません。必要な場合は、ラッパースクリプトを使用します。ラッパースクリプトは、ファイルを引数として、または標準入力に表示する場合があります。

mostシステムにインストールされている場合、起動する前にこれを試してくださいman

export PAGER=most

2
mostこれが機能するためには、インストールする必要があります。
エンゾチブ

3
most設定できない奇妙なキーバインドがあります。
Mateen Ulhaq

10

デフォルトの下線は目を痛めます。この設定により、manページの読み取りが大幅に改善されます。

色付きのマニュアルページの例

`〜.bashrc 'に以下を追加してください:

# Have less display colours
# from: https://wiki.archlinux.org/index.php/Color_output_in_console#man
export LESS_TERMCAP_mb=$'\e[1;31m'     # begin bold
export LESS_TERMCAP_md=$'\e[1;33m'     # begin blink
export LESS_TERMCAP_so=$'\e[01;44;37m' # begin reverse video
export LESS_TERMCAP_us=$'\e[01;37m'    # begin underline
export LESS_TERMCAP_me=$'\e[0m'        # reset bold/blink
export LESS_TERMCAP_se=$'\e[0m'        # reset reverse video
export LESS_TERMCAP_ue=$'\e[0m'        # reset underline
export GROFF_NO_SGR=1                  # for konsole and gnome-terminal

勝つために、export MANPAGER='less -s -M +Gg' (ソース)と組み合わせて、ドキュメントにパーセンテージを表示します。


3
@CMCDragonkaiが別の回答のコメントで言及したように、これにはexport GROFF_NO_SGR=1いくつかのターミナルエミュレータで動作する必要があります。
ベン

1
勝利のために!!%表示のexport MANPAGER='less -s -M +Gg'追加が大好きです。
MikeyE

5

あなたが使用している場合はZshのマイああ、あなたは追加することができますcolored-man-pagesplugins、あなたの配列.zshrcファイル。


3

「ほとんど」を永続的に保存する

ターミナルを開く(Ctrl+ Alt+ T

  1. 「ほとんど」をインストールします。

    sudo apt-get install most
    
  2. .bashrcを編集して、次を入力します。

    nano ~/.bashrc
    
  3. 次の行を追加します。

    # color man-pages persistently
    export PAGER='most'
    
  4. セーブ

    Ctrl+ O)-> Enter->(Ctrl+ X

  5. リフレッシュ

    source ~/.bashrc
    
  6. テスト

    man ln
    

これはxtermでも機能します。


nanoを開かないようにするには、ターミナルからbashrcに追加します。sudoapt install most; echo "export PAGER = 'most'" >>〜/ .bashrc; ソース〜/ .bashrcに
ウィル

1

http://nion.modprobe.de/blog/archives/569-colored-manpages.htmlから取得

抜粋:

$ mkdir ~/.terminfo/ && cd ~/.terminfo

ここでterminfo説明を取得します(以下をmostlike.txtとして保存します)。

# Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-pcolor
mostlike|manpages with color looking like most, 
    am, hs, km, mir, msgr, xenl, 
    cols#80, it#8, lines#24, wsl#40, 
    acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
    bel=^G, bold=\E[1m\E[31m, clear=\E[H\E[2J, cr=^M, 
    csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, 
    cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, 
    cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, 
    dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, 
    dsl=\E]0;\007, ed=\E[J, el=\E[K, enacs=\E)0, fsl=^G, 
    home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, 
    is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, kbs=^H, 
    kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 
    kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, 
    kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, 
    kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, 
    kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, 
    kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, 
    kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, 
    kslt=\E[4~, rc=\E8, rev=\E[7m\E[34m, ri=\EM, rmacs=^O, 
    rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>, 
    rmso=\E[m, rmul=\E[m, 
    rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7, 
    sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h, 
    smkx=\E[?1h\E=, smso=\E[1;30m\E[47m, smul=\E[32m, 
    tbc=\E[3g, tsl=\E]0;, u6=\E[%i%d;%dR, u7=\E[6n, 
    u8=\E[?1;2c, u9=\E[c, 

tic(terminfoエントリ記述コンパイラ)を使用してコンパイルします:

$ tic mostlike.txt

mostlike.txtコンパイル後にファイルを削除することもできます。)

そして*rc、お気に入りのシェルのファイルにエイリアスを定義するだけです。

$ alias man="TERMINFO=~/.terminfo/ LESS=C TERM=mostlike PAGER=less man"

terminfoファイルを変更する場合は、を使用infocmp mostlikeして後でその内容を取得します。


11
ここでソースを要約すると、クリックスルーすることなく(そしてサイトがダウンした場合に)人々が何を言っているかを見ることができます
マイケルMrozek

3
回答へのリンクだけでなく、回答を提供してください。ただし、回答をサポートするリンクを提供することは非常に良いことです。私がこの質問にグーグルをしていたと想像してください。StackExchangeでの良い答えは、すぐに結果の最初のページへの道を見つけるでしょう。
ステファンLasiewski

リンクは無効です。
ファルザン

これをmostlike.txtオンラインで見つけました。
カウシャルモディ

出力はどのように見えますか?
トム・ヘイル

1

dirtybitの答え受けて、強調表示された検索結果の色を変更したかったのです。これは「スタンドアウトモード」と呼ばれ、サンプルファイル「xterm-yel​​low.ti」は次のとおりです。

xterm-yellow|yellow standout mode,
# exit standout mode
  rmso=\e[m,
# begin standout mode
  smso=\e[5;30;43m,
# similar terminal
  use=xterm,

ファイルをコンパイルしてインストールします。

tic xterm-yellow.ti

「〜/ .profile」などに行を追加します。

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