我在为C++11配置flycheck时遇到了很大的问题。现在,flycheck正在标记像std::to_string()这样的东西。我使用的校验器就是g++。我可以在.emacs文件中添加什么,以便flycheck在默认情况下采用C++11?
发布于 2015-06-21 20:02:54
Flycheck为此提供了选项flycheck-gcc-language-standard。您不应该全局设置它,因为这会中断对C文件的检查,但是您可以在c++-mode-hook中使用初始化文件中的以下代码来设置它:
(add-hook 'c++-mode-hook (lambda () (setq flycheck-gcc-language-standard "c++11")))但是,我不建议这样做。取而代之的是,使用Directory Variables来配置每个项目的语言标准。
使用C-x d在Dired中打开项目的根目录,然后键入M-x add-dir-local-variable RET c++-mode RET flycheck-gcc-language-standard RET "c++11"。这将在项目的根目录中创建一个.dir-locals.el文件。每当您访问该目录或任何子目录中的文件时,Emacs都会读取该文件,并根据该文件中的规则设置变量。具体来说,Emacs现在会为项目中的所有C++文件将Flycheck语法检查的语言标准设置为C++ 11。
发布于 2017-07-31 22:45:59
答案已经很好了。我只想补充一点,如果您使用clang,那么需要修改的变量就是flycheck-clang-language-standard。
https://stackoverflow.com/questions/30949847
复制相似问题