2011-04-24 68 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)