Ответ 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)))))))
Вы можете настроить растровое изображение по своему желанию.
Чтобы применить это ко всем файлам, вы можете добавить его в 'find-file-hooks
(add-hook 'find-file-hooks 'annotate-todo)
Или, если вы хотите его только для определенных режимов, вы можете добавить его к этим режимам.
См. Fringes, Свойство 'display', Overlays, и, самое главное, перед строкой.
Примечание. Код был обновлен 27/02/2010, чтобы использовать наложения вместо прямого добавления свойств текста в текущий текст.