Emacs Python-mode 语法高亮

7
我在Ubuntu 10.04桌面机上安装了GNU Emacs 23(软件包emacs23),在Ubuntu 10.04无头服务器上安装了软件包emacs23-nox(未安装X)。这两个安装都有相同的~/.emacs文件。我在两台计算机上都使用-nw运行Emacs。我的理解是,由于Emacs 23中已经包含了python-mode,因此我在任何一台机器上都没有安装它。
在桌面机上,Python中的注释(以#开头)会以红色突出显示。在服务器上,注释显示为普通的白色文本,就像所有其他未突出显示的文本一样。请问为什么服务器(nox)安装中的注释未被正确地突出显示?
更新:这似乎是一个与终端相关的问题。我通过屏幕替代byobu,从terminator登录到服务器。如果我在服务器上使用TERM="xterm-256color" emacs运行emacs,则注释将被突出显示,但所有其他颜色看起来非常奇怪。
更新:添加“export TERM="xterm-256color"”解决了这个问题。语法高亮现在有非常奇怪的颜色:紫色、淡紫色和浅棕色。我的绿色当前行突出显示条现在是浅淡黄/绿色。但注释仍然以红色突出显示 :)
更新:解决了。将TERM="xterm-color"设置为“正确”的颜色,包括对注释的突出显示。服务器默认为TERM值为“screen-bce”,这不会突出显示注释。
更新:未解决。 byobu提供了各种功能键的绑定,以轻松创建新的屏幕会话并在它们之间切换。当TERM设置为xterm-color时,这些功能键将不再起作用。因此,我想我只能满足于Emacs中Python代码中未突出显示的注释了。

@Michael:谢谢(我不知道那个)。但是在进一步测试后,我已经“解决”了它,所以也许还有人会有答案。 - SabreWolfy
2
通常情况下,如果我在远程系统上编辑文件,我会使用emacs TRAMP模式。这样我就可以使用所有本地编辑设置。你觉得这对你来说是一个选项吗? - Jeff Bauer
@Jeff:通常我会使用ssh登录服务器来处理其他任务,同时也会编辑文件,因此并不是我所期望的从“客户端”编辑文件以使用客户端设置。谢谢你的建议,我会更加深入地研究一下。 - SabreWolfy
3个回答

2

我没有安装你使用的程序来测试这个,但是我注意到screen-bce和xterm-color之间在定义功能键方面有一些差异。你可以尝试使用以下步骤将设置从screen-bce复制到xterm-color。

使用infocmp程序,你可以查看两个TERM设置的terminfo设置之间的差异:

infocmp -d screen-bce xterm-color

您可以使用infocmp将terminfo文件反编译为其源代码,并对其进行更改以尝试模仿其他终端的行为。首先解码xterm-color terminfo文件。

infocmp xterm-color > xterm-color.src

编辑 xterm-color.src 文件,修改 kf1 到 kf19 字段的定义以匹配 screen-bce 的值。使用 infocmp 命令查看 screen-bce 的定义。

infocmp screen-bce

最后使用tic程序进行编译。

tic xterm-color.src

如果您以非root用户身份运行它,它将把编译后的terminfo文件放入$HOME/.terminfo目录中。在我的系统上,Ubuntu似乎会自动捕捉到这一点。当您满意时,也可以将其安装到标准的/usr/share/terminfo目录中。以root身份运行tic应该会为您完成此操作。

祝您好运!


2
对我而言,从 byobu 中运行 emacs -nw,并使用 TERM=xterm 产生了正确的语法高亮颜色(Python 和 Bash 中的注释都是红色的,不仅仅是 #),并且函数键也可以正常工作。请注意,我通过别名设置 TERM 来运行 Emacs,而不是在 .bashrc 中通用地进行设置:

alias emacs='TERM=xterm; emacs -nw'

另请参阅此帖子:终端 Emacs 颜色只能与 TERM=xterm-256color 一起使用


谢谢,我刚刚再次检查了一下,可以确认:在byobu(TERM=xterm)中,Python语法高亮显示颜色是正确的。byobu中的功能键也正常工作。 - SabreWolfy

1

我刚刚添加了

(set-face-foreground 'font-lock-comment-face "red")

对于我的.emacs文件


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