最近,emacs 开始在一次撤消中撤消多个击键。我不喜欢这样。我不想要这样。我似乎记得过去的事情,然后它就停止了,或者不知何故我停止了它。我怎样才能阻止呢?如果我删除了太多字符,我希望能够撤消该字符。如果我输入了太多字符,我希望能够撤消这一操作。目前它会撤消一些随机数量的更改。我不想要这样。
事实上,有些事情发生了变化:在过去,连续单字符插入的撤消记录(使用self-insert-command)被合并(以 20 为一组),但在 Emacs-25 中,这被扩展到使用 向后删除单字符delete-backward-char。
这些组的大小 ( 20) 在 C 中进行了硬编码,现在在 Elisp 中进行了硬编码 (在undo-auto-amalgamate) 中。因此,虽然它仍然是硬编码的,但更容易覆盖它,而无需编译您自己的 Emacs。
查看代码,我怀疑您可能可以通过以下方式禁用此合并业务:
(advice-add 'undo-auto--last-boundary-amalgamating-number
:override #'ignore)
Run Code Online (Sandbox Code Playgroud)