着色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突出显示其中一些绿色和其他红色,那么你可以看到执行情况如何。
答
我使用了Dimitri的建议。特别是,我有我的.emacs
(global-hi-lock-mode t)
(global-set-key (kbd "C-M-h") 'highlight-regexp)
的每次我需要强调的缓冲某个词(或正则表达式)以下两行,我打“CMH”,然后提示我的字(或正则表达式)我希望以不同的方式显示,然后让其显示出来。
答
高亮显示包有hlt-highlight-regexp-region
和hlt-highlight-regexp-to-end
,它们完全符合您的要求。
这将是正确的方法,而不是黑客的字体锁定设置,特别是快速和肮脏的临时突出显示。 – 2010-01-31 17:16:09