2012-01-19 50 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,但要注意這是一件複雜的事情。