有一种方法可以使flymake仅在保存时编译

问题描述

|| 当我键入flymake时,会使光标挂起一点。有点烦人。 我想知道是否有一种方法可以告诉flymake每次更改内容时都不要解析和编译,而是在保存时执行。 还有其他建议吗? 谢谢,     

解决方法

您可以通过将它放在
.emacs
init.el
文件中来覆盖flymake.el中的
flymake-after-change-function
(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.
      )))
在保存和初始加载文件时,仍然会进行语法检查,如果您不喜欢在加载文件时进行初始语法检查,则应该能够(我尚未测试此部分)通过以下方式将其关闭:
(setq flymake-start-syntax-check-on-find-file nil)
编辑:与您的问题没有直接关系,但是如果只是滞后是一个问题,则可能会有所帮助,您可以使用以下命令调整在保存之前应该闲置多长时间:
;; Only run flymake if I\'ve not been typing for 5 seconds
(setq flymake-no-changes-timeout 5)
默认值为0.5秒,因此像我这样将其更改为5可能会比完全关闭它有更多帮助。