super-save 設置

請教各位大佬目前都怎麼設置檔案自動儲存? 看了板上的帖子設置了 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 没有计算量大的函数。