【发布时间】:2012-02-10 05:11:03
【问题描述】:
自从我切换到 Emacs 以来,有一件事情困扰着我,那就是我只能让它在 C 代码中正确地语法高亮十进制数字。例如,这些数字正确突出显示:
1234
1234l
1234.5f
但是这些数字没有正确突出显示:
0x1234 // x is different colour
0xabcd // no hex digits are coloured
019 // invalid digit 9 is coloured like it is correct
是否可以让 Emacs 对这些数字中的每个字符进行相同的着色?如果无效数字(如 019 或 0x0g)可以用不同的颜色来突出显示,那就更好了。
【问题讨论】:
-
Emacs 有几个不同的高亮包;
font-lock-mode和hilit19等。你用的是哪个? -
我怀疑标准 C 模式使用 hilit19,直到现在我才听说过。字体锁定的可能性更大。
-
我不知道该怎么说 - 我想我仍然在使用默认值。
-
标准 Emacs 不会像
1234那样突出显示普通数字,所以你必须有一些额外的包来获得它。无论如何,突出显示所有数字的最佳方法是使用font-lock-add-keywords,除非您可以找到一个包来为您完成。 -
啊,我的错误 - 我添加了 (font-lock-add-keywords nil '(("[0-9][0-9.]*[lLfF]?" 0 font-lock -string-face))) 到我的 init.el