man bash
たとえば、xterm
またはX内で操作を実行すると、mate-terminal
一部の単語にアンダースコアが表示されます。
仮想端末でこれを行うと、man bash
単語に同じ色が表示されます。
Xで同じ色が得られますか?
2人の男の間にこれらの行動の違いが現れるのはなぜですか?
答え1
less
ページビューアに設定すると、特殊変数を使用して標準色をオーバーライドman
できます。less
私の設定の例:
export LESS_TERMCAP_mb=$'\e[6m' # begin blinking
export LESS_TERMCAP_md=$'\e[34m' # begin bold
export LESS_TERMCAP_us=$'\e[4;32m' # begin underline
export LESS_TERMCAP_so=$'\e[1;33;41m' # begin standout-mode - info box
export LESS_TERMCAP_me=$'\e[m' # end mode
export LESS_TERMCAP_ue=$'\e[m' # end underline
export LESS_TERMCAP_se=$'\e[m' # end standout-mode
また、次の設定が必要な場合があります。
export GROFF_NO_SGR=''
「新しい」アクションgroff
のいくつかのバグが原因です。
私のLinuxボックスをチェックし、コンソールで設定した場合
export LESS_TERMCAP_md=$'\e[4m'
その後、コードは実際に下線付きの代わりに薄い青色として解釈されます(コンソールでは不可能です)。
答え2
答え3
実際、答えは簡単です。 EGA-VGAカラーテキストモードは簡単です。強調する能力が不足している。そのため、groff
適切と判断される代替品を使用してください。
fbdev
技術的には、エミュレーションはVGA制限に拘束されませんが、(互換性のために)同じ意味を持つ同じスクリーンバッファ形式を使用します。
一部の前景/背景の組み合わせを下線にするために、LinuxフレームバッファTUIエミュレータのコードを変更できます。しかし、その結果は次のようになります。
- 互換性の問題
- カーネル拡張;
linux
仮想の「新しいLinuxコンソール」の機能は既存のTERM = linuxとは異なるため、新しいterminfo $ TERMキーを開発する必要があります(に加えて)。- ログインシェルがそれに応じて$ TERMを設定していることを確認する必要があります。
答え4
他の答えは興味深いですが、OPの質問に対する答えはありません。特定のカスタマイズが不足しているのに、一部の端末が異なる動作をするのはなぜですか?
Linuxコンソールには長い歴史があります(1990年代初頭から)。表示色興味深い動画属性ではサポートされていません。 @Incnis Mrsiはこれについて言及しました(より良いソースがたくさんありますが)。
- しかし、グロフは下線を引く能力が不足していることを認識していません。ターミナルの説明は、groffがこれを無視するので良いことを示しています(ハードコーディングされたエスケープを使用します)。ただし、Linuxコンソールはこれを次のようにレンダリングします。それ選ぶ
- 環境変数に関する注意事項は
less
興味深いですが、一般的には使用されません。
他の端末によっては、ビデオのプロパティを色でレンダリングできます。 xterm は以下を設定することでこれを行うことができます。リソース colorUL
そしてcolorULMode
(Red Hatベースのディストリビューションは通常このように構成されているようです)。同様に、価値を得るはい(リソースベースでもありますが、設定可能性は低い)。