eshell中的彩色git输出


10

我在cygwin上的mintty(配置为xterm-256color)终端中使用emacs。list-colors-display工作良好。和颜色显示在干燥清单等中。现在,将git branch当前分支的颜色设置为yellow reverse。但是,shell窗口和eshell窗口都不会显示正确的颜色。而是以默认颜色显示当前分支。在ansi-term同一终端内的窗口中,或在emacs外部,它将按应显示的方式显示。

我在我的.emacs

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

有什么方法可以使这些颜色显示在外壳或eshell窗口中?


1
在设置为git config --global color.ui alwaysrunning的情况下,我无法使用图形化Emacs在eshell中重现此内容git diff。您能否提供更详细的步骤?
rekado

我的以下回答对您有帮助吗?还是不清楚?
rekado 2015年

Answers:


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-vectorerror“负像” /“反转” 以外的人指定其他人脸。

您无需(add-hook 'eshell-preoutput-filter-functions 'ansi-color-apply)在eshell中使用ansi颜色。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.