有没有办法让flymake只在保存时才编译

Fed*_*ico 5 xemacs flymake

当我输入 Flymake 时,光标会稍微悬起。这有点烦人。

我想知道是否有一种方法可以告诉 Flymake 在每次更改某些内容时不要解析和编译,只需在保存时执行即可。

还有其他建议吗?

谢谢,

Sam*_*ham 4

您可以通过将其放入您的或文件flymake-after-change-function中来覆盖 Flymake.el 中的:.emacsinit.el

(eval-after-load "flymake"
  '(progn
    (defun flymake-after-change-function (start stop len)
      "Start syntax check for current buffer if it isn't already running."
      ;; Do nothing, don't want to run checks until I save.
      )))
Run Code Online (Sandbox Code Playgroud)

当您保存和最初加载文件时,您仍然会进行语法检查,如果您不喜欢加载文件时的初始语法检查,您应该能够(我尚未测试这部分)将其打开关闭:

(setq flymake-start-syntax-check-on-find-file nil)
Run Code Online (Sandbox Code Playgroud)

编辑:与您的问题没有直接关系,但如果只是滞后问题可能会有所帮助,您可以调整保存开始之前应该空闲的时间:

;; Only run flymake if I've not been typing for 5 seconds
(setq flymake-no-changes-timeout 5)
Run Code Online (Sandbox Code Playgroud)

默认值为 0.5 秒,因此也许像我一样将其更改为 5 秒可能比简单地完全关闭它更有帮助。