2014-02-21 49 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