emacs 中的一击撤消

One keystroke in emacs undo

最近,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)