eshellのカラーgit出力


10

私はcygwinのmintty(xterm-256colorと言うように設定されている)端末内でemacsを使用しています。list-colors-display正常に動作します。そして色はdirtedリストなどに表示されます。今私はgit branch現在のブランチの色をに設定しましたyellow reverse。ただし、シェルウィンドウもeshellウィンドウも正しい色を表示しません。代わりに、現在のブランチはデフォルトの色で表示されます。ansi-termEmacsのウィンドウ、または外部に、同じ端末の内部、それは必要として表示されます。

私はこれを私の中に持っています.emacs

(add-hook 'eshell-preoutput-filter-functions  'ansi-color-apply)

これらの色をシェルまたはeshellウィンドウ内に表示する方法はありますか?


1
私が設定した、グラフィカルEmacsでESHELLでこれを再現することはできませんgit config --global color.ui always実行しているがgit diff。より詳細な手順を教えていただけますか?
rekado

以下の私の答えはあなたを助けますか、それについて何か不明ですか?
rekado

回答:


5

Eshellとshell-modeその両方はansi-color.el、ANSI カラーコードを面に変換するために使用します。 ansi-color.el次の面をサポートします:

Parameter  Description        Face used by default
  0        default            default
  1        bold               bold
  2        faint              default
  3        italic             italic
  4        underlined         underline
  5        slowly blinking    success
  6        rapidly blinking   warning
  7        negative image     error

「ネガ画像」は「反転」でerror顔にマッピングされます。リポジトリを設定すると...

[color]
        ui = always
[color "branch"]
        current = yellow reverse

...そして実行するgit branchと、ローカルブランチが表示され、現在のブランチは太字の黄色でレンダリングされます。黄色のテキストにポイントを置いて実行describe-faceすると、実際にはerror顔でレンダリングされていることがわかります。

「ネガティブイメージ」/「リバース」ansi-color-faces-vector以外の異なる顔を割り当てるようにカスタマイズできerrorます。

(add-hook 'eshell-preoutput-filter-functions 'ansi-color-apply)eshellでANSIカラーを使用する必要はありません。

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