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'display'プロパティOverlays、そして最も重要なのはbefore-stringプロパティを参照してください。

注:コードは2010年2月27日に更新され、現在のテキストにテキストプロパティを直接追加する代わりにオーバーレイを使用するようになりました。

于 2010-02-11T07:00:11.920 に答える
6

私はemacs-fuに関するこの投稿で説明されているアプローチが好きです。これは、必要なモードのフォントロック設定にTODO / FIXME/...を追加します。Treyのアプローチとは対照的に、これは入力時に単語を強調表示する必要がありますが、Treyのアプローチは、ファイルを開いたときにのみ単語を強調表示する必要があります(またはこれを間違えますか)。

とにかくそれはあなた次第です。優れたグーグル検索はおそらくさらに多くのアイデアをあなたに与えるでしょう:http ://www.google.com/search?q = emacs + highlight + todo

更新:あなたの質問はすでに回答済みです:Emacs、単語のすべての出現を強調表示

于 2010-02-11T08:03:49.720 に答える