cpplint
是 Google C++ 代码规范的静态检查工具,是一个简单的 Python 脚本。
借助
Syntastic
工具,可以配置为 C++ 文件的检查工具。
本文只介绍 C++ Linting 的配置,关于代码所进、注释、自动补全、括号匹配等
配置方式请参考
这篇文章
。先上图:
Syntastic 是 Vim 中的语法检查框架,可以对不同的文件应用不同的外部检查工具。
并将所有检查错误聚合并显示在 Vim 中。如果你在使用
Vundle
,
安装 Syntastic 很方便,在
~/.vimrc
加一行配置:
Plugin 'scrooloose/syntastic'
在 Vim 中执行 :PluginInstall
即可安装成功。
如果你本地安装有 gcc
就已经有 C++ 语法检查功能了,打开一个 C++ 文件。
左侧会显示所有语法错误的位置,光标所在行的错误信息在状态栏给出。
现在给出的错误是通过一次编译得到 语法错误,不是 代码风格问题。
如果没有 gcc,你可以把你的编译器设置上去:
let g:syntastic_cpp_compiler = 'clang++'
参考文档:https://github.com/vim-syntastic/syntastic/wiki/(v3.1.0)---C--:---gcc
安装 cpplint
除了编译期的 语法检查 外,为了便于团队协作,通常需要引入 代码风格检查。
统一所有在这个仓库里开发的人的代码风格,比如如何使用空格、如何使用缩进、以及如何命名。
这时我们就需要 cpplint,这时一个外部程序。先安装这个工具(可能需要管理员权限):
pip install cpplint
cpplint 装好之后就立即可用了,下图中我执行了 cpplint /tmp/hello-world.cpp
,
调用 string
构造时多一个空格。
可以在项目根目录中加入 CPPLINT.cfg
文件,其内容如下:
filter=-build/namespace,-legal/copyright
多个 filter 以逗号分隔,更多参数请参考 cpplint --help
。
配置到 Vim
现在 cpplint 已经可以用了,我们把这个外部工具配置到 Syntastic,
用作 C++ 文件类型的检查就大功告成了。
在 ~/.vimrc
中,除了上述的语法检查(gcc)之外,我们再定义一个 cpplint
。
把它加到 checkers
中。
let g:syntastic_cpp_cpplint_exec = 'cpplint'
let g:syntastic_cpp_checkers = ['cpplint', 'gcc']
" 设置 cpplint 的错误级别阈值(默认是 5),级别低于这一设置的不会显示
let g:syntastic_cpp_cpplint_thres = 1
注意需要设置 错误聚合,才能同时显示两个 checker 的错误: