gpt4 book ai didi

Emacs:左边缘的 TODO 指示器有一个奇怪的副作用 - 删除字符

转载 作者:行者123 更新时间:2023-12-04 18:53:40 24 4
gpt4 key购买 nike

我刚看完 Emacs :TODO indicator at left side ,并试了一下。这似乎很有趣。小指示器三角形出现,但我得到了一个奇怪的副作用:文本本身正在被改变。正在删除字符。

前:

alt text

后:

alt text

模式行确实表明在运行 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)))))))

第一个解决方案使用了 'display text 属性,它改变了指定文本的显示方式,在这种情况下,它被 left fringe 中的三角形替换。 .我需要做的是使用 'before-string overlay反而。这不会改变正在显示的字符串。

另一个优点,由此注释的代码的剪切/粘贴不带标记。

我已经更新了原始问题中的代码以反射(reflect)这一变化。

关于Emacs:左边缘的 TODO 指示器有一个奇怪的副作用 - 删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2348679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com