2012-03-08 60 views
1

我無法弄清楚如何設置emacs只使用兩種顏色,一種用於註釋,另一種用於所有語言模式中的常規代碼。 當然可以將除註釋以外的每個塊的顏色設置爲第二種顏色,但我不確定所有可用塊是什麼。自定義emacs語法着色

到目前爲止,我發現的所有內容都是 (setq-default全局字體鎖定模式無) 但這也會殺死評論的着色。

我想這對於經過時間驗證的emacs戰士來說一定是相當容易的。

回答

4

請參閱angry fruit salad wiki頁面以清除字體鎖定面。您可以稍微修改代碼以免除註釋。

如果你真的必須刪除所有顏色的代碼會做所有的面孔,除了警告和註釋:

(defun decolorize-font-lock() 
    "remove all colors from font-lock faces except comment and warning" 
    (let ((fg (face-attribute 'default :foreground)) 
     (bg (face-attribute 'default :background))) 
    (mapc (lambda (face) 
      (when face 
       (set-face-attribute face nil 
            :foreground fg 
            :background bg))) 
      (mapcar (lambda (f) 
        (if (and (string-match "^font-lock" (symbol-name f)) 
          (not (string-match "-comment\\|-warning" (symbol-name f)))) 
         f 
         nil)) 
        (face-list))))) 

(decolorize-font-lock) 
+0

哇,這個工作!我現在正在修改此代碼來殺死所有字體重量差異。我只想能夠從代碼中發表評論。 – Tentresh 2012-03-08 17:11:13

+0

高興地upvote和「接受」。謝謝。再來。 – 2012-03-08 17:13:50

+0

已接受。不能upvote,因爲這是我的第一個問題和第一天在stackoverflow。 – Tentresh 2012-03-08 17:15:58

0

color-theme是一個方便的「框架」定義的語法和窗口的語言無關的方式着色。

開始使用它就像黑客入侵默認主題一樣簡單。一個典型的通道是這樣的:

(font-lock-builtin-face ((t (:foreground "#000080")))) 
(font-lock-keyword-face ((t (:bold t :foreground "#000080")))) 
(font-lock-function-name-face ((t (:foreground "#000080")))) 
(font-lock-variable-name-face ((t (:bold t :foreground "#000080")))) 
(font-lock-string-face ((t (:foreground "#177A12")))) 
(font-lock-comment-face ((t (:italic t :foreground "#716F6F")))) 
(font-lock-constant-face ((t (:italic t :foreground "#660E7A")))) 
(font-lock-doc-string-face ((t (:foreground "DarkOrange"))))