auto-save 如何与 flyspell 以及 flycheck 更好配合

flyspell 的机制好象是在保存的时候就会触发拼写检查,如果同时也开了自动保存,就会造成输入内容时比较卡顿。关闭flyspell 后明显流畅了。不知道有没有人这两个一起用的?
比如:打开一个100 多行的.clang-format 文件就没法正常输入字母了。

而 flycheck 的更改机制默认是:

(save idle-change new-line mode-enabled)

我目前的设置是:

(add-hook 'prog-mode-hook 'flyspell-prog-mode)

自动保存使用的是猫哥写auto-save
保存间隔大概是1s钟。

系统:Windows 10 Emacs:28.0.50 native comp

1 个赞

搜一下wucuo,大幅性能改善。更多自由。兼容flyspell

1 个赞

多谢大佬,回头再试试你写的wucuo。

刚用了大佬的wucuo,非常满意。没了flyspell的卡顿,也没有spell-fu的抽风,跟auto-save融合很好。

最近发现造成卡顿的最重要因素不是flyspell,而是 flycheck。 特别是在 Windows 系统上,flycheck 比较慢。比如说我在 C++ mode 下使用的是 Clang 和 cppcheck,语法检查的时间目测超过了1s,如果正在flycheck的时候,又执行了 auto-save,这时移动光标卡顿就很正常了。

解决方法,将自动保存的时间间隔提高到1.5s 或者2 s:

(setq auto-save-idle 1.5)

对于flycheck,每次保存都检查这个事件似乎没什么必要,可以直接去掉:

(with-eval-after-load 'flycheck
  (setq flycheck-check-syntax-automatically '(idle-change new-line mode-enabled)))
1 个赞

两个都会有性能问题。我正在开发lazyflymake取代flycheck

1 个赞

期待你的Lazyflymake,这个两个包的性能问题主要也是在Windows 平台上比较严重和突出。

禁用flymake和flycheck吧,两个包都很烦,影响写代码。

这也是个不错的方法。
直接关闭了flycheck,界面也干净 :smile:。写完再开出来检查一次。