20

我想在源代码中的任何地方都有一种指示器

#TODO:一些评论

//TODO:一些评论

指示器可能只是一个标记,我已经启用了在 emacs 上显示的行号。

4

2 回答 2

21

该命令将执行您想要的操作。

(defun annotate-todo ()
  "put fringe marker on TODO: lines in the curent buffer"
  (interactive)
  (save-excursion
    (goto-char (point-min))
    (while (re-search-forward "TODO:" nil t)
      (let ((overlay (make-overlay (- (point) 5) (point))))
        (overlay-put overlay 'before-string (propertize "A"
                                                        'display '(left-fringe right-triangle)))))))

您可以根据需要自定义位图

要使其适用于所有文件,您可以将其添加到'find-file-hooks

(add-hook 'find-file-hooks 'annotate-todo)

或者,如果您只希望它用于某些模式,您可以将它添加到这些模式挂钩中。

请参阅Fringes“显示”属性叠加,以及最重要的before-string属性。

注意:代码已于 27/02/2010 更新以使用覆盖而不是直接将文本属性添加到当前文本。

于 2010-02-11T07:00:11.920 回答
6

我喜欢这篇关于 emacs-fu 的帖子中描述的方法,它将 TODO/FIXME/... 添加到您需要的模式的字体锁定设置中。与 Trey 的方法相比,这应该在您键入时突出显示单词,而他的方法应该只在您打开文件时突出显示它们(或者我弄错了)。

反正由你决定。一个好的谷歌搜索可能会给你更多的想法:http ://www.google.com/search?q=emacs+highlight+todo

更新:您的问题已经得到解答:Emacs,突出显示所有出现的单词

于 2010-02-11T08:03:49.720 回答