我刚刚在左侧阅读了Emacs:TODO指标,并试了一下.这看起来很有趣.小指示符三角形出现,但我得到一个奇怪的副作用:文本本身正在改变.正在删除字符.
之前:
替代文字http://i50.tinypic.com/25ge83s.jpg
后:
替代文字http://i46.tinypic.com/2qn4e94.jpg
模式行确实表明缓冲区在运行后已被更改annotate-todo.这解释了什么?
(我在Windows上使用emacs 22.2.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 (format "A")
'display '(left-fringe right-triangle)))))))
Run Code Online (Sandbox Code Playgroud)
第一个解决方案使用'displaytext属性,它更改指定文本的显示方式,在这种情况下,它被左边缘的三角形替换.我需要做的是改为使用叠加层.这不会更改显示的字符串.'before-string
另一个优点是,由此注释的代码的剪切/粘贴不带有标记.
我已经更新了原始问题中的代码以反映这一变化.
| 归档时间: |
|
| 查看次数: |
391 次 |
| 最近记录: |