2013-08-02 57 views
1

我正在嘗試更改預處理程序指令#define#include的默認字體,而不使用font-lock-preprocessor-face。 而是我想使用font-lock-add-keywords方法和正則表達式。 我也希望這適用於彙編和C模式。如何在C模式下對#define和#include預處理器進行着色

+0

** **重疊式:http://stackoverflow.com/questions/17981738/face-font-in-c-mode-when-adding-new-keyword – lawlist

回答

1

你不應該去這些措施如果你想要做 是重新定義爲font-lock-preprocessor-facec-mode。 原因是,字體鎖已經使用正則表達式,它的 已經很慢。現在,您將使用完全相同的正則表達式第二次解析完全相同的源 。

我曾經使用一些自定義正則表達式來實現C++,但是在一年後將它關閉了 ,因爲它讓我放慢了速度。

您可以通過打開一個50k的源文件 並使用C-v一堆次來檢查其速度有多慢。 現在再試試find-file-literally - 這很好。

而是執行此操作:

(make-face 'c-preprocessor-face) 
(set-face-background 'c-preprocessor-face "blue") 
(set-face-foreground 'c-preprocessor-face "yellow") 
(add-hook 'asm-mode-hook 
      (lambda() 
      (set (make-local-variable 
        'font-lock-comment-face) 
       'c-preprocessor-face))) 
(add-hook 'c-mode-hook 
     (lambda() 
      (set (make-local-variable 
        'c-preprocessor-face-name) 
       'c-preprocessor-face))) 
+0

感謝您的回覆abo-abo。 這裏我的主要要求是使預處理程序「#if#else #ifndef ... etc」爲黑色,並使preorpocessros「#include和#define」爲藍色。 爲此,我需要使用正則表達式。但是這對我沒有用。 – SFbay007

相關問題