如何使emacs控制台模式继承shell的颜色

5

我刚刚将我的Ubuntu笔记本从12.04升级到12.10。

在12.04中,运行emacs -nw会以终端模式打开emacs,并使用终端颜色方案(背景、前景等),特别是它会保留我的透明终端背景。

现在在12.10中,运行相同的命令会导致emacs在终端中以另一种颜色方案(灰色背景)打开。如何告诉emacs保持我的终端颜色方案?


http://batsov.com/articles/2012/02/19/color-theming-in-emacs-reloaded/ - Satish
谢谢提供链接,但我不想处理自定义颜色主题编辑,只是希望告诉emacs重用我的gnome终端颜色。 - Manuel Selva
@ManuelSelva,你在.emacs文件中定义了一些自定义颜色,当你没有使用-nw时会出现吗?如果是这样,你可以忽略它们,如果你更改你的.emacs以检查变量`window-system'是否绑定到非ni并在该条件下有条件地跳过它们。(在Ubuntu中,我希望这个值绑定到"X",表示X窗口系统)最坏的情况是,你应该能够使用"emacs -q",它将完全忽略你的.emacs,但应该给你想要的终端颜色和所有默认行为。 - john.k.doe
@john.k.doe 我的 .emacs 文件中没有定义任何自定义颜色。 - Manuel Selva
2个回答

2
感谢https://stackoverflow.com/users/774691/john-k-doe的评论,我终于知道为什么我的emacs -nw会出现那样的问题。
我在一个没有使用-nw选项启动的emacs窗口中编辑了默认字体大小,并使用菜单中的选项->保存选项保存了这个新设置。这个操作修改了默认加载到~/.emacs文件中的~/.xemacs/custom.el文件。修改包括默认字体的背景和前景属性,值与"Window"模式下使用的值相同。
为了解决这个问题,我只需从custom.el文件中删除这个自定义条目即可。

0

我不确定这个问题是否有一个明智的答案。毕竟,gnome终端颜色主题列出了三种“颜色”:(1)文本,(2)背景(3)加粗。

Emacs的工作方式是给每个文本位赋予一个“面”。颜色主题是将面映射到颜色的过程。有超过三个面...


我的 Gnome 终端允许我定义超过三种颜色。在之前的配置中(Ubuntu 12.04),更改这些颜色会改变 Emacs 的颜色。例如,其中一种颜色被 Emacs 用于 C 模式下的关键字高亮显示,更改终端首选项中的颜色会改变 Emacs 的高亮显示。 - Manuel Selva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接