Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
emacs undo中的一次按键_Emacs_Undo - Fatal编程技术网

emacs undo中的一次按键

emacs undo中的一次按键,emacs,undo,Emacs,Undo,最近,emacs开始在一次撤销中撤销多个击键。我不喜欢那样。我不想那样。我似乎从过去就记得它,然后它就停止了,或者不知何故我停止了它。我怎样才能阻止它?如果删除的字符太多,我希望能够撤消该字符。如果我键入的字符太多,我希望能够撤消该操作。目前,它撤消了一些随机数目的更改。我不想这样。确实有些变化:在过去,连续单字符插入的撤销记录(使用self-insert命令)被合并(20人一组),但在Emacs-25中,这被扩展到使用delete-backward char的单字符向后删除 这些组的大小(20

最近,emacs开始在一次撤销中撤销多个击键。我不喜欢那样。我不想那样。我似乎从过去就记得它,然后它就停止了,或者不知何故我停止了它。我怎样才能阻止它?如果删除的字符太多,我希望能够撤消该字符。如果我键入的字符太多,我希望能够撤消该操作。目前,它撤消了一些随机数目的更改。我不想这样。

确实有些变化:在过去,连续单字符插入的撤销记录(使用
self-insert命令
)被合并(20人一组),但在Emacs-25中,这被扩展到使用
delete-backward char
的单字符向后删除

这些组的大小(
20
)用C硬编码,现在用Elisp硬编码(在
undo auto mergage
)。因此,尽管它仍然是硬编码的,但是不需要编译自己的Emacs就可以更容易地覆盖它

查看代码,我怀疑您可以通过以下方式禁用此合并业务:

(advice-add 'undo-auto--last-boundary-amalgamating-number
            :override #'ignore)

Emacs使用计时器存储最近的更改。如果你真的想做的话,你可以在每一次击键时都把这个放到
post-command钩子上。请参见
undo auto--boundary timer
undo auto--boundary sure timer
。或者,您可以更改保存计时器的时间间隔--看起来它设置为10秒--我认为这是相关的代码行:
(在时间10 nil时运行#'undo-auto--boundary timer)
@lawlist:请将其作为答案提交。请记住:评论可以随时删除,并且评论不可用于全局搜索(AFAIK)。