Emacs Python模式语法突出显示

时间:2011-03-08 18:57:03

标签: python emacs syntax-highlighting emacs23

我在Ubuntu 10.04桌面计算机上安装了GNU Emacs 23(程序包emacs23),并在Ubuntu 10.04无头服务器上安装了程序包emacs23-nox(未安装X)。两个安装都具有相同的~/.emacs文件。我在两台计算机上都运行带有-nw的Emacs。我没有在任何一台机器上安装python-mode,因为我的理解是它包含在Emacs 23中。

在桌面计算机上,Python中的注释(以#开头)以红色突出显示。在服务器上,注释以纯白文本显示,就像所有其他非突出显示的文本一样。有关为什么评论未在服务器(nox)安装上正确突出显示的任何建议?

更新:这似乎是与终端相关的问题。我ssh通过屏幕替换terminatorbyobu进入服务器计算机。如果我使用TERM="xterm-256color" emacs在服务器上运行emacs,则会突出显示注释,但所有其他颜色看起来都很奇怪。

更新:添加`export TERM =“xterm-256color”“解决了这个问题。现在语法高亮显示有非常奇怪的颜色:紫色紫色和浅棕色。我的绿色当前线高亮条现在是淡淡的黄色/绿色。评论以红色突出显示:)

更新:已解决。设置TERM="xterm-color"会产生“正确”颜色,包括突出显示评论。服务器默认为TERM的“screen-bce”值,但未突出显示评论。

更新:未解决。 byobu为各种功能键提供键绑定,以便轻松创建新的屏幕会话并在它们之间切换。当TERM设置为xterm-color时,这些功能键不再有效。所以我想我只需要对Emacs中Python代码中没有突出显示的注释感到满意。

3 个答案:

答案 0 :(得分: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应该为你做到这一点。

祝你好运!

答案 1 :(得分:2)

对于我来说emacs -nwbyobuTERM=xterm TERM生成语法高亮显示的正确颜色(python和bash中的注释都是红色而不仅仅是#)和功能键工作。注意我将.bashrc设置为运行emacs的别名的一部分,而不是在alias emacs='TERM=xterm; emacs -nw'中进行设置:

{{1}}

另见帖子:Terminal emacs colors only work with TERM=xterm-256color

答案 2 :(得分:1)

我刚刚添加了

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

到我的.emacs