【问题标题】:Emacs :TODO indicator at left sideEmacs :TODO 指示器在左侧
【发布时间】:2011-01-15 14:25:25
【问题描述】:

我想在源代码中的任何地方都在行的左侧有某种指示器

#TODO:一些评论

//TODO:一些cmets

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

【问题讨论】:

    标签: emacs lisp elisp highlighting todo


    【解决方案1】:

    这个命令会做你想做的事情。

    (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)
    

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

    请参阅 FringesThe 'display' PropertyOverlays,最重要的是 before-string 属性。

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

    【讨论】:

    • 这项工作很棒。不幸的是,我已启用要显示的行号。所以行号覆盖了 TODO: 标记。任何让两者都出现的方法
    • @Trey Jackson。现在效果很好。我在行号指示器旁边添加了。非常感谢
    • 酷!但是.....:) ...更有用的是在边缘显示红色条,缩放到文档的长度。换句话说,如果 TODO 出现在文档的 75% 处,那么指示器也会出现在边缘栏的 75% 处,而不管滚动状态以及当时 TODO 在窗口中是否可见。一些差异工具可以做到这一点。使用这种指示器,您可以看到边缘中指示的 TODO 项目的存在,无论它们当前是否在屏幕上可见。
    • @Cheeso 有点像滚动条。我不确定这在边缘是否可行,但这很有趣。
    • 这似乎是通过字体锁定实现的。叠加层看起来很重且不灵活。
    【解决方案2】:

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

    无论如何,这取决于你。一个好的谷歌搜索可能会给你更多的想法:http://www.google.com/search?q=emacs+highlight+todo

    更新:您的问题已经得到解答:Emacs, highlight all occurences of a word

    【讨论】:

      猜你喜欢
      • 2011-01-21
      • 2018-03-20
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      相关资源
      最近更新 更多