在Linux上的Emacs / xterm颜色烦恼

我在我的本地Linux机器上和远程集群的login节点上都在控制台窗口中使用了emacs。 我经常使用emacs,并且在我的.emacs文件中将前景色设置为白色,如下所示:

(set-foreground-color "white") (set-background-color "black") 

但是,当我运行emacs时,前景不是白色的; 它是灰色的,很难阅读。 在我的Mac上,具有相同设置的控制台窗口中的emacs显示为正确的白色。 但是,在konsole和xterm的两个linux系统上,它都是灰色的。

如果有问题,我将TERM设置为xterm-color,桌面运行RHEL 5,集群节点运行RHEL 4(CentOS)。

这是Linux设置terminal颜色的一些默认设置吗? 我怎么白变白?

注意:这是与控制台emacs,而不是X下的emacs -nw如果你有DISPLAY设置,那就是emacs -nw

在我的Emacs(这是运行在终端下,而不是X)颜色brightwhite看起来不错。 在RHEL5我有我的TERM环境变量设置为xterm-256color 。 如果工作正常,你应该可以运行这些脚本并看到256色的输出。 在Emacs下,当你做Mx list-colors-display时,你应该看到一个相当平滑的颜色斜坡(没有明显重复的颜色)。 如果没有,你可能错过了正确的termcap条目(尝试安装libtermcap-devel包,我认为)。

如果我将TERM更改为xterm-color ,则在list-colors-display的输出中, brightwhite会显示为灰色。

我不确定关于RHEL4。

关于什么:

 (set-foreground-color "brightwhite") 

回应评论:

在emacs中,运行Mx list-colors-display ,它应该显示emacs认为可以在终端上使用的所有颜色。

如果你只是使用反向视频的控制台版本是足够好的?

 $ emacs -nw -rv 

看起来你只是设置前景色。

 (set-foreground-color "white") (set-foreground-color "black") 

我相信你的意思是后者set-background-color

运行Emacs时我可以确认这一点:

 $ emacs -nw -bg black -fg white 

太。

我做了一些实验,你可以在emacs中设置控制台的颜色,但是你仅限于这个调色板:

 black blue cyan green magenta red white yellow 

你得到的白色是灰色的; 全明亮的白色被保留为粗体文本。 所以,如果你跑

 Mx facemenu-set-bold 

你会得到大胆的(明亮的白色)文本为以后插入。

我没有运气试图强制默认的面部大胆。 (我真的不明白emacs中的脸是如何工作的。)

我还发现我在终端模式下有奇怪的颜色,并最终追溯到字体定制。 我有这样的事情:

 (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(default ((t (:inherit nil :stipple nil :background "#000a00" :foreground "#ffffed" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 113 :width normal :foundry "unknown" :family "Droid Sans Mono"))))) 

我删除了前景和背景属性,一切开始寻找hunky-dory。