2012-01-19 46 views
3

在emacs(23.3.1,GNU)我已经设置了一个主题(无所谓我使用这个问题仍然存在)。在C++模式下,当我声明一个变量时,变量被突出显示(这种情况是白色的),但是在我的程序中再次调用该变量时,它不会像在声明时那样突出显示白色。任何想法为什么发生这种情况,以及如何解决它?提前致谢。下面是一个例子,但是,显然没有颜色:变量只在声明中突出显示? (Emacs的c + +模式)

int num; <------- would be white 

cout << "The number is: " << num << endl; <-------- here it would not be white, 

just regular foreground color? 
+0

请确切说明哪种模式,我将它设置为标题中的“C++ - mode”,这可能不是您正在使用的模式。还包括[X] Emacs版本等。 – 2012-01-19 01:07:07

+0

对不起,我编辑并包含了正确的信息 – Gmenfan83 2012-01-19 01:13:09

回答

2

那是因为它是相当困难的Emacs的告诉大家,在第二份声明中num是没有做缓冲的完整语法解析的变量。从理论上讲,Emacs可以做到这一点(例如参见here),但大多数模式使用正则表达式进行关键字高亮显示。这意味着可以实现的功能有一些限制,但由于其简单性(模式编程人员通常偏好模式程序员)(所有都是相对的)。

你可以考虑这个通用文本编辑器是Emacs是一个弱点,相比于更专业的集成开发环境,往往做全面的解析提供智能的错误信息,支持灵活的代码浏览,并提出快速修复错误的时候。

如果您想深入了解Emacs语法突出显示,请查看Font Lock,特别是font-lock-keywords,但要注意这是一件复杂的事情。