ただインストールしました。カラーマニュアルページzshプラグイン。
うまくいきますが、下部のメッセージに見苦しい色が出力されます。
すべてをオーバーライドせずにプラグインの色をパーソナライズする正しい方法は何ですか?色が直接設定されるプロセスのようです。プラグインの有効化。
それとも私のシステムのバグなので、別の方法で修正できますか?実際に読み取れない基本的なカラー出力は奇妙に見えます。
私はUbuntu 18.10とgnome-terminalで動作しています。
答え1
マニュアルページ( )の形式ではgroff
明示的な色の使用は許可されていませんが、視聴者が色を表示するために再解釈できる太字または下線などのいくつかのテキスト装飾を使用します。これはリンクプラグインが行うことなので、このプラグインを削除し、代わりに変数を介して.zshrc
直接色を設定することをお勧めします(このプラグインと同様にpagerをLESS_TERMCAP
使用すると仮定します)。less
man
説明を含む変数のリストは次のとおりです。
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
カラーコードのリストは、次のスクリプトを使用して見つけることができます。
#!/bin/bash
echo "PALETTE OF 8 COLORS (bold, high intensity, normal, faint)"
for i in {30..37}; do printf "\e[1;${i}m1;%-2s \e[m" "$i"; done; echo
for i in {90..97}; do printf "\e[${i}m%+4s \e[m" "$i"; done; echo
for i in {30..37}; do printf "\e[${i}m%+4s \e[m" "$i"; done; echo
for i in {30..37}; do printf "\e[2;${i}m2;%-2s \e[m" "$i"; done;
echo -e "\n\n\nPALETTE OF 256 COLORS (only normal)"
j=8
for i in {0..255}; do
[[ $i = 16 ]] && j=6
[[ $i = 232 ]] && j=8
printf "\e[38;5;${i}m38;5;%-4s\e[m" "${i}"
(( i>15 && i<232 )) && printf "\e[52C\e[1;38;5;${i}m1;38;5;%-4s\e[52C\e[m\e[2;38;5;${i}m2;38;5;%-4s\e[m\e[126D" "${i}" "${i}"
[[ $(( $(( $i - 15 )) % $j )) = 0 ]] && echo
[[ $(( $(( $i - 15 )) % $(( $j * 6 )) )) = 0 ]] && echo
done
exit 0
答え2
与えられた解決策は非常にエレガントです。 Oh My ZSH公式wikiを願っています。
ohmyzsh/プラグイン/colormanpages/配列にはカラーリストやアイテムはありませんless_termcap
。以下は、小さな例を挙げるための##Customizationの内容です。
プラグインは、
less_termcap
termcap機能をポケットベルエスケープシーケンスにマッピングするグローバル連想配列を宣言しますless
。プラグインがロードされると、ユーザーはこのマッピングをさらにカスタマイズできます。詳しくはソースを確認してください。たとえば、エスケープシーケンス
less_termcap[md]
にマッピングして太字で印刷する方法を教えてください。現在太字の赤色で表示されていますが、変更するにはOMZをインポートしてzshrcファイルで再定義するだけです。LESS_TERMCAP_md
less
less_termcap[md]
less_termcap[md]="${fg_bold[blue]}" # this tells less to print bold text in bold blue
これらすべてを持ってもっと試してみることができると思います。用語キャップ
# mb start blink
# md start bold
# me turn off bold, blink and underline
# so start standout (reverse video)
# se stop standout
# us start underline
# ue stop underline
ノート
しかし、試してミスするのに時間を無駄にしたくない場合は、1行で十分です。