2014-02-21 46 views
1

如何为操作员设置字体颜色? 我正在用C++编写程序,并且我希望像'+','=','!=','< <'这样的运算符按照我的意愿着色。如何设置emacs运算符颜色?

我试着将光标移动到一个操作符和'M-x自定义面部'上,但是默认情况下我需要'所有面部'。我应该编辑哪一个?

回答

2

我相信这是你要找的。

;;  * the name of our face * 
(defface font-lock-operator-face 
    '((((class color) 
     :background "darkseagreen2"))) 
    "Basic face for highlighting." 
    :group 'basic-faces) 

;; You'll have a hard time missing these colors 
(set-face-foreground 'font-lock-operator-face "red") 
(set-face-background 'font-lock-operator-face "blue") 

(font-lock-add-keywords 'c++-mode 
    '(("\\(~^&\|!<>:=,.\\+*/%-]\\)" 0 'font-lock-operator-face))) 
+0

你忘了'&','|','!','?'和';'。此外,'regexp-opt'对于制作这些类型的正则表达式非常有用。 – jpkotta

+0

Facepalm。特别是因为它在OP的要求中。添加。 – PythonNut

+0

非常感谢!淘气评论! LOL – Diaz

0

默认情况下,我的版本c++-mode(Emacs 24.3默认值)中的运算符不是font-lock。你可以在光标下面找到C-u C-x =。要添加字体锁定到运营商,您可以添加,然后以这种方式:

(font-lock-add-keywords 'c++-mode 
    '(("\\(~^<>:=,.\\+*/%-]\\)" 0 'highlight))) 

正则表达式,和脸可能会定制。我不是正则表达式忍者,所以突出显示的操作符非常简单。

+0

这不适合我。 Emacs正常初始化,但没有出现任何不同。我猜想'突出显示恰好使它变成了白色,与普通字符一样? – Diaz

+0

无论如何,我可以指定我喜欢的颜色? – Diaz

+0

当然,定义一张脸并将其设置为所需的颜色(set-face-foreground)。 – PythonNut