【发布时间】:2011-01-15 14:25:25
【问题描述】:
我想在源代码中的任何地方都在行的左侧有某种指示器
#TODO:一些评论
//TODO:一些cmets
指示器可能是一个公正的标记,我已经启用了在 emacs 上显示的行号。
【问题讨论】:
标签: emacs lisp elisp highlighting todo
我想在源代码中的任何地方都在行的左侧有某种指示器
#TODO:一些评论
//TODO:一些cmets
指示器可能是一个公正的标记,我已经启用了在 emacs 上显示的行号。
【问题讨论】:
标签: emacs lisp elisp highlighting todo
这个命令会做你想做的事情。
(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)))))))
您可以根据需要customize the bitmap。
要将其应用于所有文件,您可以将其添加到 'find-file-hooks
(add-hook 'find-file-hooks 'annotate-todo)
或者,如果您只希望它用于某些模式,您可以将它添加到那些模式挂钩中。
请参阅 Fringes、The 'display' Property、Overlays,最重要的是 before-string 属性。
注意:代码已于 27/02/2010 更新以使用叠加层,而不是直接将文本属性添加到当前文本。
【讨论】:
我喜欢 emacs-fu 上 this post 中描述的方法,它将 TODO/FIXME/... 添加到您需要的模式的字体锁定设置中。与 Trey 的方法相比,这应该在您键入时突出显示单词,而他的方法应该只在您打开文件时突出显示它们(或者我弄错了)。
无论如何,这取决于你。一个好的谷歌搜索可能会给你更多的想法:http://www.google.com/search?q=emacs+highlight+todo
更新:您的问题已经得到解答:Emacs, highlight all occurences of a word
【讨论】: