在emacs中更改高亮线的颜色

34

我安装了emacs 24,并安装了prelude。我想把主题从zenburn更改为tango-dark,但是行高亮的颜色是黄色的,我不喜欢这个颜色,我希望它像zenburn中的灰色一样。

tango-dark theme with hl-line enabled(yellow)

zenburn theme with hl-line enabled(dark gray)

我应该怎么做? 我不想关闭hl-line,但是当我尝试这样做时,我发现括号()之间的空格也使用相同的黄色高亮显示。(在zenburn主题下没有发生这种情况)。我还知道这不是tango主题的一部分,因为当我使用vanilla emacs(sudo emacs)和tango主题运行时,不会出现这样的高亮效果。 tango-dark theme with hl-mode disabled vanilla emacs with tango-dark theme

2个回答

72

如果您自定义了初始化文件(~/.emacs~/.emacs.el~/.emacs.d/init.el),那么这将是一个简单的修复。

打开hl-line:

(global-hl-line-mode 1)

将任何颜色设置为当前行的背景面:

(set-face-background 'hl-line "#3e4446")
保持当前行的语法高亮:
(set-face-foreground 'highlight nil)

这是不行的。我也在使用tomorrow-theme(https://github.com/chriskempson/tomorrow-theme),所以可能会有影响。无论如何,你描述的方法都不起作用。 - dimitarvp
6
这应该适用于至少 Emacs 24,只要你将它们放在正确的位置 - 这些可能已被你的其他配置或安装包覆盖。 - soimort
1
是的。我想指出这一点,但表达不够清楚。解决方法当然是将您的自定义内容放在主题加载/激活之后,而这在我的配置中并不是这样。 - dimitarvp
我认为 keep-syntax-hilighting 命令应该是 (set-face-foreground 'hl-line nil)。这是一个打字错误吗? - mkvoya

14

M-x customize-face RET hl-line可以帮助您。 只需选择您喜欢的面孔(您可以使用安装了其他主题的相同命令,只是为了查看您喜欢的值)。


谢谢,那解决了第一个问题,但我仍然有第三幅图中的问题(圆括号间的黄色高亮显示)。我该如何禁用它? - Farzam
1
我猜你正在使用show-paren-mode,并且已将show-paren-style设置为expression。请使用M-x customize-variable和show-paren-style,并将其设置为parenthesis(如果您不喜欢它,则可以禁用该模式)。但我可能是错的,可能还有另一种模式在起作用... - juanleon
那没什么帮助。我觉得那个被禁用了。还有一个问题是高亮显示行的另一个问题。正如你在zenburn颜色主题中看到的,行中的语法高亮显示没有改变,但在tango中,所有字符都显示为白色。我怎样才能把它改成看起来像zenburn呢? - Farzam
1
"M-x describe-face" 可以帮助查看用于突出显示特定字符的面容。 - Bozhidar Batsov
1
@BozhidarBatsov:谢谢,那是smartparens.el(已修复)。我该如何使它保持语法高亮?(请参见我的先前评论) - Farzam
1
@Farzan,你需要做的是自定义-face hl-line,然后设置该face的背景颜色,而不是前景颜色。换句话说,唯一“打勾”的复选框应该是背景。这样前景颜色将被“尊重”(即不设置为白色)。 - juanleon

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