在emacs中着色文本片段

时间:2010-01-30 21:09:44

标签: emacs

假设我想强调一些词,所以我想将这几个词的颜色改为绿色。

在emacs中有一种简单的方法吗?

谢谢。

6 个答案:

答案 0 :(得分: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 :(得分:3)

精彩集锦包含hlt-highlight-regexp-regionhlt-highlight-regexp-to-end,它们可以完全按照您的意愿行事。

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

答案 2 :(得分:2)

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

答案 3 :(得分: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

答案 4 :(得分:1)

如果你只想暂时突出显示它们,我发现M-x highlight-regexp命令非常有用,它特别适合查看各种日志文件。例如,你自己创建了一个日志类,在运行函数时输出MyClass::function() >之类的跟踪信息,退出时输出MyClass::function() <(有时在调试多线程问题时尤其有用)然后你只要求emacs突出显示其中一些是绿色和其他红色,然后你可以看到执行是如何进行的。

答案 5 :(得分:0)

我使用Dimitri建议的内容。特别是,我的.emacs

中有以下两行
(global-hi-lock-mode t)
(global-set-key (kbd "C-M-h") 'highlight-regexp)

每当我需要在缓冲区中突出显示某个单词(或正则表达式)时,我点击“CMh”,然后提示我输入单词(或正则表达式)我希望以不同的方式显示,然后是显示它。