11

为了记录,我正在使用 OSX 雪豹。

当我直接从终端使用 emacs 时,我有一个我非常满意的颜色集(例如,用于 c/c++)——黑色上的绿色、红色注释、彩色关键字......等等。其中一些是在我的“终端首选项”中设置,有些在我的 ~/.emacs 文件中(见下文)。当我从屏幕运行 emacs 时,基本的配色方案是相同的(黑底绿),但颜色不同(例如注释字符是红色的,但不是整个注释)——而且真的很烦人。

任何帮助,将不胜感激!

在我的“.emacs”文件中(这在 gnu-screen emacs 中停止工作):

(global-font-lock-mode t)
(custom-set-faces
 '(font-lock-comment-face
   ((((class color) (background light))
     :foreground "tomato")
    )))

在我的“.screenrc”文件中:

shell -$SHELL            # colors still don't work without this
#term xterm-256color    # using this doesn't fix the colors (suggested on some forums)

altscreen on
startup_message off

我认为我的 .screenrc 文件中的命令 'shell -$SHELL' 使屏幕中的命令提示符与默认值相同 --- 它确实使我的命令行说 'computername:/DIR/username$' 而不仅仅是 ' bash-3.2$'

==================================================== ================

解决方案:感谢Greg E。

我需要在屏幕上设置我的终端模拟器以匹配我的普通 shell。为此,我添加了

export TERM='xterm-color'

到 ~/.bash_profile

出于某种原因,“~/.screenrc”文件中的“term xterm-color”不起作用。

4

1 回答 1

7

我的怀疑是,虽然您的终端编译时可能支持超过标准的 16 色,但您的特定版本的 GNU 屏幕可能不支持。我对 OSX 不是很熟悉,但在 Linux 上,我会检查普通终端和一个正在运行的屏幕之间的输出是否不同(如果不可用tput colors,我希望有一些 OSX 等价物)。tput如果是这样,您可能需要安装(或手动编译)一个不同的屏幕版本,其中包括对其他颜色的支持(通常,最大值为 256,但也常见为 88,而默认最小值为 16)。

编辑:最终,正确的解决方案被证明是手动设置$TERM环境变量(见下面的评论)。

于 2012-06-22T01:09:22.493 回答