例如,我正在尝试将font-lock-comment-face
设置为Blue
,以便csharp-mode
和c++-mode
Red
这可能吗?
现在我正在使用:
(set-face-attribute 'font-lock-comment-face nil :foreground "#57a64a")
(set-face-attribute 'font-lock-keyword-face nil :foreground "#569cd6")
但这会全局设置值,而不仅仅是模式的值。
忘记添加版本im使用:GNU Emacs 24.4.1(i686-pc-mingw32)的2014-10-24在LEG570上在视窗 8 上
哇!谢谢,我以为这是不可能的,但后来我发现这个:http://www.emacswiki.org/emacs/FacesPerBuffer
看看维基上的例子,似乎正是你需要的:
(make-face 'php-comment-face)
(set-face-foreground 'php-comment-face "LightGrey")
(add-hook 'php-mode-hook
(lambda ()
;; ...
(set (make-local-variable 'font-lock-comment-face)
'php-comment-face)
;; ...
感谢相关问题:为每个缓冲区/模式设置 Emacs defaut 字体
UPD
要赢得 CC 模式绑定,您应该将 (add-hook csharp-mode-hook ...
放在 (add-hook c-mode-hook ...
之后,如下所示:
(make-face 'c-comment-face)
(set-face-foreground 'c-comment-face "Red")
(add-hook 'c-mode-hook
(lambda ()
;; ...
(set (make-local-variable 'font-lock-comment-face)
'c-comment-face)))
(make-face 'cs-comment-face)
(set-face-foreground 'cs-comment-face "Blue")
(add-hook 'csharp-mode-hook
(lambda ()
;; ...
(set (make-local-variable 'font-lock-comment-face)
'cs-comment-face)))
如果您在单独的文件中有钩子代码,则应在 c 模式之后加载 csharp 模式设置。不要忘记(remove-hook ...
尝试一下。