当我在不可写的目录中打开文件时,我得到
Opening output file: Permission denied, /path/to/file
同时文件没有加载。
当我重复该find-file
命令时,该文件第二次加载正常。
我想要的功能是:立即打开文件,可能会显示一条消息,flymake 无法工作,但不要碍事。
我已经设置flymake-gui-warnings-enabled
好了nil
,至少可以让我摆脱烦人的对话框。
您可以将 flymake 配置为在加载文件时不启动语法检查(我总是这样做只是为了加快速度)。
(setq flymake-start-syntax-check-on-find-file nil)
您的问题很可能是由于 Flymake 尝试将缓冲区的临时副本写入与原始文件相同的目录。
您可以按照本博客中的步骤来避免这种情况:
http://blog.urth.org/2011/06/flymake-versus-the-catalyst-restarter.html
这解决了 Perl 的问题,但可以相当容易地适应其他语言,或者您可以从https://github.com/illusori/emacs-flymake下载修补版本的 flymake.el 来修补此问题和其他一些问题. (完全披露:我是补丁的作者。)