着色emacs中的文本片段

问题描述:

假设我有几个要强调的单词,所以我想将这几个单词的颜色仅改为绿色。着色emacs中的文本片段

有没有简单的方法在emacs中做到这一点?

谢谢。

这就是我所做的,使用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)) 

使用功能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

如果你希望它们只是暂时突出显示,我发现M-x highlight-regexp命令非常有帮助,它特别适合查看各种日志文件。例如,您为自己创建了一个日志记录类,它在运行函数时输出一些跟踪信息,如MyClass::function() >,当它退出时可以是MyClass::function() <(有时可能在调试多线程问题时特别有用),那么您只需要emacs突出显示其中一些绿色和其他红色,那么你可以看到执行情况如何。

+0

这将是正确的方法,而不是黑客的字体锁定设置,特别是快速和肮脏的临时突出显示。 – 2010-01-31 17:16:09

我使用了Dimitri的建议。特别是,我有我的.emacs

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

的每次我需要强调的缓冲某个词(或正则表达式)以下两行,我打“CMH”,然后提示我的字(或正则表达式)我希望以不同的方式显示,然后让其显示出来。

高亮显示包有hlt-highlight-regexp-regionhlt-highlight-regexp-to-end,它们完全符合您的要求。

http://www.emacswiki.org/cgi-bin/wiki/highlight.el

利用图书馆HighLight。您可以使用叠加层或文本属性。您可以永久保存突出显示或让其成为临时显示。您可以用多种方式突出显示(正则表达式,鼠标拖动,...)。很多可能性。