emacs 去除 shell 中的所有 ansi 颜色代码
Posted
技术标签:
【中文标题】emacs 去除 shell 中的所有 ansi 颜色代码【英文标题】:emacs strips away all ansi color codes in shells 【发布时间】:2012-03-03 23:13:06 【问题描述】:我在 OS X 上使用 emacs 24 并且有一个奇怪的问题,我看不到任何颜色代码。 Emacs 似乎只是忽略了它们。我的动机是看到 C++ 项目的 cmake、llvm 和 googletest 框架的彩色输出。我想在编译模式下查看颜色,但是修复 comint 或 shell 模式的显示可能就足够了。
我的问题与许多其他问题的不同之处在于,我既看不到原始的 ansi 颜色序列,也看不到它们应该产生的颜色。似乎代码只是从输出中剥离出来的,但我不知道在哪里。
我尝试了一些显而易见的事情,比如
需要'ansi-color
开启ansi-color-for-comint-mode
尝试在 shell、eshell、multi-term、ansi-term 中生成任何 ansi-colored 输出均失败
将我的 TERM 设置为各种设置,包括 xterm
、xterm-color
、xterm-256color
一切都无济于事。
编辑:
我的emacs配置分为我的personal settings和fork的emacs前奏,其中我修改了一些小设置,主要是添加包
【问题讨论】:
有一个similar question @syohex:不,它被问题中的“this is different from”条款所涵盖! 从您的屏幕截图中看,就像echo
的输出 是彩色的,可能是常规的 compile-mode
突出显示。
最后一行作为编译模式的常规突出显示的一部分被着色,但这不是我期望从 ansi 代码中获得的蓝色/粗体组合。
我是 Emacs Prelude 的作者,那里没有任何设置可以去除颜色。我刚刚尝试了 shell-mode 和 ansi-term 并且那里的输出颜色很好。我会进一步调查。
【参考方案1】:
原来问题是zenburn-theme
1.2引起的。 ansi-color-names-vector
存在一个错误,该错误已在 1.3 版(刚刚发布)中修复。如果您遇到类似问题,请确保升级您的 zenburn 版本。
【讨论】:
【参考方案2】:我可以肯定地说,仅使用(ansi-color-for-comint-mode-on)
对我来说效果很好。 FWIW 你可以浏览我的 emacs 配置,但它相当大:)
https://github.com/aufflick/emacs.d
【讨论】:
以上是关于emacs 去除 shell 中的所有 ansi 颜色代码的主要内容,如果未能解决你的问题,请参考以下文章