1

我有点迷路了,因为我不确定在哪里放置,或者确切地说如何创建flymakemakefile。我看到了有关它的 emacswiki 文章,但是(也许我只是忽略了它)我没有找到放置文件的位置,或者如何指定它的位置。

4

1 回答 1

3

Makefile 的确切位置无关紧要。

Flymake 在包含被检查文件的目录及其任何祖先目录中搜索 Makefile。假设您编辑foo/bar/test.c,然后 Flymake 会先尝试foo/bar/Makefile,然后foo/Makefile,依此类推,直到到达根目录。

Makefile 必须为 Flymake 提供特殊支持,但是:它必须提供一个check-syntax目标,并且应该查看CHK_SOURCES正在检查的文件。如何编写这样的目标取决于您使用的语言和编译器。如果你的 Makefile 没有提供这个目标,语法检查将失败

Flymake 将 Makefiles 用于具有通用扩展名(例如,等)的 C 和 C++.c文件.cpp。请注意,Flymake 查看缓冲区的文件名,而不是其模式。因此,缓冲区必须有一个支持文件,并且必须具有 Flymake 已知的扩展名。如果您的文件有不寻常的扩展名,请flymake-allowed-file-name-masks相应地自定义,以添加与您的文件名匹配的正则表达式,例如:

(require 'flymake)
(add-to-list 'flymake-allowed-file-name-masks 
             '("\\.an-exotic-c-extension\\'" flymake-simple-make-init))

如果您设置了 Makefile 并相应地自定义了 Flymake,M-x flymake-mode那么应该足以启用语法检查。

您可能还想按照评论中的建议查看 Flycheck。Flycheck 是语法检查的替代实现,它适用于许多语言。它不支持Makefile,但提供对多种语言的支持。如果您使用的语言受支持,那么您甚至不需要 Makefile 进行更改是很好的。

免责声明:我是 Flycheck 的作者和维护者。

于 2014-03-07T14:51:58.240 回答