2010-01-30 69 views

回答

3

這就是我所做的,使用font-lock-add-keywords。我想在我的代碼中突出顯示單詞TODO:HACK:FIXME:

(defface todo-face 
'((t())) 
"Face for highlighting comments like TODO: and HACK:") 

(set-face-background 'todo-face cyan-name) 

;; Add keywords we want highlighted 
(defun add-todo-to-current-mode() 
    (font-lock-add-keywords nil 
     '(("\\(TODO\\|HACK\\|FIXME\\):" 1 'todo-face prepend)) 
     t)) 
1

使用功能font-lock-add-keywords定義一個新的匹配有問題的字符串,綁定匹配到some face you've defined將顯示爲綠色。例如:

(font-lock-add-keywords nil 
    '("\\<foo\\>" 0 my-green-face)) 

注意,你可以指定一個特定的模式,我寫了上面nil,匹配形式可以採取任何的六個不同的風格。有關規則和幾個示例,請參閱documentation for the variable font-lock-keywords

1

如果你希望它們只是暫時突出顯示,我發現M-x highlight-regexp命令非常有幫助,它特別適合查看各種日誌文件。例如,您爲自己創建了一個日誌記錄類,它在運行函數時輸出一些跟蹤信息,如MyClass::function() >,當它退出時可以是MyClass::function() <(有時可能在調試多線程問題時特別有用),那麼您只需要emacs突出顯示其中一些綠色和其他紅色,那麼你可以看到執行情況如何。

+0

這將是正確的方法,而不是黑客的字體鎖定設置,特別是快速和骯髒的臨時突出顯示。 – 2010-01-31 17:16:09

0

我使用了Dimitri的建議。特別是,我有我的.emacs

(global-hi-lock-mode t) 
(global-set-key (kbd "C-M-h") 'highlight-regexp) 

的每次我需要強調的緩衝某個詞(或正則表達式)以下兩行,我打「CMH」,然後提示我的字(或正則表達式)我希望以不同的方式顯示,然後讓其顯示出來。

2

利用圖書館HighLight。您可以使用疊加層或文本屬性。您可以永久保存突出顯示或讓其成爲臨時顯示。您可以用多種方式突出顯示(正則表達式,鼠標拖動,...)。很多可能性。