我在为C ++ 11配置flycheck时遇到了很大的麻烦。目前,flycheck正在标记诸如这样的内容std::to_string()
。我使用的检查器只是g ++。我可以在.emacs文件中添加些什么,以便默认情况下flycheck将采用C ++ 11?
Flycheck为此提供了选项flycheck-gcc-language-standard
。您不应该在全局范围内进行设置,因为这会破坏对C文件的检查,但是您可以c++-mode-hook
使用init文件中的以下代码进行设置:
(add-hook 'c++-mode-hook (lambda () (setq flycheck-gcc-language-standard "c++11")))
但是,我建议不要这样做。而是使用目录变量来配置每个项目的语言标准。
用Dired打开项目的根目录C-x d
,然后键入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。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句