.bashrc
今カラー出力を得るためにこれを私のアイテムに追加しましたless
。
# Colorize less man pages.
export LESS_TERMCAP_md=$'\e[01;34m'
export LESS_TERMCAP_us=$'\e[01;33m'
export LESS_TERMCAP_so=$'\e[01;44;37m'
export LESS_TERMCAP_mb=$'\e[01;31m'
export LESS_TERMCAP_mr=$'\e[01;35m'
export LESS_TERMCAP_me=$'\e[00m'
export LESS_TERMCAP_ue=$'\e[00m'
export LESS_TERMCAP_se=$'\e[00m'
...現在、特定のコマンド(環境変数の表示に関連しているように見えます)がこれらの新しい設定に一致するカラー出力を生成します。私が脱出を間違えたのでしょうか?それとも意図的な行為でしょうか?別のエスケープバリアントを試しましたが、機能しませんless
。
たとえば、次はenv
コマンドのスクリーンショットです。
php -i
カラー出力もありますが、環境変数セクションのみです。
ベストアンサー1
これは通常の動作です。これらの環境変数には、端末の前景色を変更させるエスケープシーケンスが含まれています。任意のプログラムから出力するless
ときenv
。
これらの変数には実際のエスケープ文字を含める必要があり、lessは後処理を実行しません。
通常、プログラムには少数の構成変数を入れることができます。少ないキーファイルLESS_TERMCAP_xx
しかし、lesskeyファイルを読み取る前にlessは変数を読み取るため、変数には機能しません(less 444で始まります)。したがって、環境に投入する以外に選択肢はありません。
man
これらの変数を他の目的にのみ使用するには、エイリアスを使用して環境変数を設定するラッパースクリプトに変数を設定less
できます。man
PAGER
#!/bin/sh
escape=␛ # a literal escape character
export LESS_TERMCAP_md=$escape'[01;34m'
…
exec less "$@"
(または、#!/bin/bash
最初の行に を使用して#'\e'
構文を使用してエスケープ文字を取得することもできます。ダッシュがある/bin/sh
システムでは/bin/sh
実際には目立たないかもしれませんが、ダッシュがあるシステムでは少し高速です。)
このスクリプトを呼び出してまたはにless-color
追加します。一部のシステムでは、別名を作成する代わりに環境変数を設定して、他のポケットベルを使用するように指示することがあります。alias man='PAGER=less-color man'
~/.bashrc
~/.zshrc
man
MANPAGER
export MANPAGER=less-color
~/.profile