已经设置了自动保存了, atuo-save-default 是t auto-save-timeout设置了5. auto-save-mode不是minor mode么, 我用describe-mode看不到这个呢?
但是很迥异的是, 有时候会在状态栏提示auto saving, 但是更多时候就没有反应. 到底什么时候才算idle, 只要没有输入就算么? 为什么停止编辑5s之后还是没有自动保存呢
已经设置了自动保存了, atuo-save-default 是t auto-save-timeout设置了5. auto-save-mode不是minor mode么, 我用describe-mode看不到这个呢?
但是很迥异的是, 有时候会在状态栏提示auto saving, 但是更多时候就没有反应. 到底什么时候才算idle, 只要没有输入就算么? 为什么停止编辑5s之后还是没有自动保存呢
看起来像个 Bug,试试 M-x report-emacs-bug
。
如果好奇为什么有这个 Bug 的话以及想修复它的话,看看 auto-save-mode
和 describe-mode
实现应该会有帮助。
Auto Save 的时机在 (emacs) Auto Save Control 中有介绍:
auto-save-interval
) 个字符auto-save-timeout
) 秒(你可以切换到终端输入 sleep 30
,等 30 秒,结束后应该就能看到 Emacs 提示 Auto Save 了)我这边是正常的,如果你那边有问题并且知道如何重现的话,也应当 M-x report-emacs-bug
。
你想说的可能是诡异
, 迥异
的意思是“完全不同”
应该是个bug,我今天遇到同样的问题,设置了auto-save-timeout
不会自动保存,不过auto-save-interval
有效果
解决方法:
(run-with-idle-timer auto-save-timeout t #'do-auto-save)
如果你开启了auto-save-visited-mode
的话,auto-save-visited-interval
应该要大于auto-save-timeout
,不然它就会直接保存到文件,之后auto-save-timeout
就没有效果了
另外, 不要使用变量auto-save-visited-file-name
, 因为这个变量This variable is obsolete since Emacs 26.1;
, 而且使用这个变量有时候会导致当前文件
保存到auto-save-file-name-transforms
目录中,这时候就会出现有时候修改了dotfiles,但却没有效果的现象,原因就是当前buffer被自动保存到auto-save-file-name-transforms
指定的目录去了