我正在嘗試更改預處理程序指令#define
和#include
的默認字體,而不使用font-lock-preprocessor-face
。 而是我想使用font-lock-add-keywords
方法和正則表達式。 我也希望這適用於彙編和C模式。如何在C模式下對#define和#include預處理器進行着色
1
A
回答
0
您是否看過我的comment
和answer
到您之前的問題,這與本當前主題基本上是同一個問題?
1
你不應該去這些措施如果你想要做 是重新定義爲font-lock-preprocessor-face
c-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
相關問題
- 1. C++ #define預處理器
- 2. C預處理器:#define in C ...諮詢
- 3. 預處理器tomfoolery(對#include進行字符串化)
- 4. #define預處理器的範圍C
- 5. 在C++ 11模式下奇怪的g ++預處理器行爲
- 6. 通過着色器在iPhone上對YUV進行RGB處理
- 7. c如何在反向模式下進行子串處理#
- 8. C++模板和C預處理器
- 9. #define(C預處理器)的陣列格式
- 10. 如何在預處理器宏中對運算結果進行串化處理
- 11. C++着色器,HLSL,如何發送到着色器,紋理? 「sampler2d」?
- 12. C預處理器:在#define中使用#if?
- 13. 預處理器宏Emacs C模式自動縮進失敗
- 14. 如何在devenv命令行中添加預處理程序#define?
- 15. 任何讓c預處理器忽略所有#include的方法?
- 16. 如何動態地對3d對象進行着色/紋理化?
- 17. 預處理器替代PHP的include()?
- 18. CruiseControl.NET預處理器'include'異常
- 19. 應如何對音頻進行預處理以進行分類?
- 20. 如何#define預處理真正起作用用C
- 21. #define in #define;預處理器中發生了什麼?
- 22. C預處理器:用前導零對字符串int進行處理?
- 23. WP8使用像素着色器進行圖像處理
- 24. 使用GLSL着色器進行圖像處理?
- 25. 用C組合兩個#define的符號++預處理器
- 26. C預處理器#define聲明的變量是什麼類型?
- 27. 在vsReport模式下的ListView項目和行的着色
- 28. Qt4:對QIcon進行着色
- 29. 以奇怪的方式使用#define預處理器指令
- 30. C預處理器在運行時?
** **重疊式:http://stackoverflow.com/questions/17981738/face-font-in-c-mode-when-adding-new-keyword – lawlist