当目录不可写时,Emacs flymake可防止加载文件

时间:2011-06-01 18:03:40

标签: emacs flymake

当我在一个不可写的目录中打开一个文件时,我得到了

Opening output file: Permission denied, /path/to/file

同时未加载文件。

当我重复find-file命令时,第二次正确加载文件。

我想要的功能是:立即打开文件,可能会显示一条消息,表明flymake无法正常工作,但不要使用。

我已经将flymake-gui-warnings-enabled设置为nil,这至少让我想起了烦人的对话框。

2 个答案:

答案 0 :(得分:1)

你可以配置flymake在加载文件时不启动语法检查(我总是这样做只是为了加快速度)。

(setq flymake-start-syntax-check-on-find-file nil)

答案 1 :(得分:1)

您的问题很可能是因为Flymake尝试将缓冲区的临时副本写入与原始文件相同的目录。

您可以按照此博客中的步骤来避免这种情况:

http://blog.urth.org/2011/06/flymake-versus-the-catalyst-restarter.html

这解决了Perl的问题,但可以很容易地适应其他语言,或者您可以从https://github.com/illusori/emacs-flymake下载修补版本的flymake.el,修补此问题和其他一些问题。 (完全披露:我是补丁的作者。)