請教各位大佬目前都怎麼設置檔案自動儲存?
看了板上的帖子設置了 super-save,但是 triggers 的相關設置以及 idle 似乎都沒有動作。
以下是我的 config
;; super-save
;; FIXME: find-file-hook doesn't work
;; FIXME: file not saved when idle
(leaf super-save
:ensure t
:quelpa (super-save :fetcher github :repo "bbatsov/super-save")
:global-minor-mode super-save-mode
:config
(setq super-save-auto-save-when-idle t)
(add-to-list 'super-save-triggers 'find-file)
(add-to-list 'super-save-hook-triggers 'find-file-hook))
我觉得这个super-save没有懒猫的auto-save好用。
我是这么设置的,因为之前用 auto-save习惯了 1秒自动保存,默认是 5 秒保存。
(use-package super-save
:diminish
:defer 0.5
:config
(add-to-list 'super-save-triggers 'switch-window)
(setq super-save-exclude '(".gpg"))
(setq super-save-idle-duration 1)
(setq super-save-auto-save-when-idle t)
(setq save-silently t)
(super-save-mode 1))
之前用 super-save 是因为它更方便在melpa安装。
现在用 submodule 管理包了,近期打算再换用回猫哥的 auto-save
其实,从用户使用角度,感觉不出 auto-save 和 super-save 的区别。
- auto-save 是检查所有的文件,如果有修改一起保存。
- super-save 是检查当前文件,如果有修改就保存。
super-save 的 idle save 能针对不在窗口显示,但被修改了的文件吗?我这儿测试似乎不行呀
不能,它只监控当前buffer。这也是为什么本论坛很多人喜欢 auto-save 的原因。
我之前也用懒猫的 auto-save,不过后面感觉它太激进了,有时候如果绑了一些函数到 before-save-hook 上还可能导致卡顿,于是切换到 super-save 上了,切换窗口和失去焦点这两种情况倒也能应付大部分情况了。前者像是全自动机枪,后者就是半自动步枪哈哈。
我的经验是, before-save-hook 运行的函数卡顿,都不值得那样做。
因为自动保存的收益远远大于 before-save-hook 那些函数,哈哈哈哈。
我用了一段时间 super-save 只通过默认的绑定的各种事件来触发保存,感觉体验不怎么好。还是要经常手动按保存键。所以最后还是设置了 (setq super-save-idle-duration 1)
, 让他1秒保存。
用自动保存,就尽量保证 save-hook 没有计算量大的函数。