2011-04-24 51 views
1

我使用EmacsForMacOsX,v23.3.1,我想知道如何將浮點數值celsiusFloat = (5.0/9.0);的顏色更改爲與我目前
color-theme-billw主題age = 23;不同的顏色。使用Color-Theme爲Emacs下的c-mode浮點值設置顏色?

我懷疑StackOverflow是否以不同的顏色對它們進行着色。


編輯: 我最初的方法來添加 正則表達式的浮點 d*\.d*cc-mode.el顯然不是Emacs的語法高亮(又稱字體鎖)的工作方式 - 進一步的研究使我以下網站: http://www.gnu.org/software/emacs/elisp/html_node/Customizing-Keywords.html

編輯2: 我似乎找到了我的答案在http://www.emacswiki.org/emacs/AddKeywords
http://www.gnu.org/software/emacs/manual/html_node/emacs/Font-Lock.html#Font-Lock

(add-hook 'c-mode-hook (lambda() (font-lock-add-keywords nil '(("[0-9]+\\.[0-9]+" 1 font-lock-warning-face t)))))

+1

哦,男人,一種顏色整數與浮點數的方法對於那些基於上下文默默地理解數字的愚蠢語言來說太棒了。 – drysdam 2011-04-24 13:32:26

+0

它會的,不是嗎? :)現在,如果我可以只是想出如何做到這一點.. – Zolomon 2011-04-24 13:45:26

+0

到目前爲止,我已經設法找到cc-mode.el - 我的第一次嘗試將爲正則表達式添加一個面「\ d * \。\ d *」。 – Zolomon 2011-04-24 14:26:33

回答

0

我找到了一個解決方案:http://hbfs.wordpress.com/2010/03/02/adding-keywords-in-emacs/

第一:

(make-face 'font-lock-special-macro-face) ;; Create a new face 
(set-face-foreground 'font-lock-special-macro-face "pink") ;; Set the colour 

然後我們進行正則表達式添加到關鍵字列表,每個正則表達式着一張臉關聯:

(defun add-custom-keyw() 
    "adds a few special keywords for c and c++ modes" 
    ; 
    (font-lock-add-keywords nil 
    '(
    ("[0-9]+\\.[0-9]+" . 'font-lock-special-macro-face) 

    ; more of those would go here 
    ) 
    ) 
) 

最後我們把它掛到我們的模式:

(add-hook 'c-mode-hook 'add-custom-keyw)