2012-07-27 54 views
2

我在emacs中使用C++,除了突出顯示代碼時的細節外,它工作得很完美。每當我寫一個函數有多個參數(有時,即使只有一個),它不recognice功能的功能,比如在:Emacs在C++中的不完全突出顯示模式

double Gamma(double x, double mean, double gamma){ 
    //some code 
} 

Gamma是不突出的功能等,但作爲純文本,而在#define square(x) x*xsquare正確突出,以及在

complex<double> magphase2c(double mag, double phase){ 
// some code 
} 

其中magphace2c被突出顯示爲函數。

同樣的情況發生時,我有,例如,

TF1 *fitBWResult = new TF1("fitBWResult", BreitWigner, ResMassMin, ResMassMax, 3); 
// versus 
double Mass = 0.776132; 

其中fitBWResult沒有被識別爲一個變量,但Mass是。最後一個問題只發生在我使用指針時。

我正在使用Emacs 23.4.1,我不知道cc模式的版本,但我正在運行Debian testing(wheezy)的最新安裝。

在此先感謝!

+0

適合我。 (從回購的Emacs 23.3.1,Ubuntu 12.04,主要是默認設置)。也許你可以下載一個更新的cc模式?另外,你確定它是用C++模式而不是C模式嗎? (可能是,但沒有傷害檢查) – noisecapella 2012-07-27 21:57:15

+0

我已經加倍檢查(好吧,幾乎是一個被困時間)。配置幾乎是默認設置。我還沒有嘗試過一種更新的cc模式,我想。我認爲第二個問題與指針有關,而不是特定的格式。我現在不能嘗試,但我會嘗試一個新的cc模式的建議。謝謝! – oxio 2012-07-27 22:02:07

+0

我終於來到一個答案:noisecapella是對的,問題是cc模式版本。 Debian Wheezy附帶了5.31.something,該問題在版本5.32.3(項目頁面中的最後一個)中得到了修復。 – oxio 2012-08-02 20:47:59

回答

1

我認爲這個問題應該不是沒有答案留下,因爲我解決了它得益於用戶noisecapella的想法,我後我找到了解決辦法:

Debian的喘息,在當時,使用CC使用Emacs 23.4.1的模式5.31.8和這個版本的cc-mode是帶有問題的版本。解決方案是安裝較新的版本(也許舊的版本也可以完成這項工作),包裝爲from their homepage。特別是,我解決了安裝版本5.32.3的問題,這是目前較新的版本。