ClangFormat 入门教程

本教程的测试环境

  • Ubuntu 18.04 LTS
  • clang-format-6.0

什么是 ClangFormat?

ClangFormat 是一个格式化代码的工具

如何安装 ClangFormat?

$ sudo apt install clang-format

如何使用 ClangFormat?

作为一个单独的命令使用

$ ## 常用命令如下: 
$
$ ## 从标准输入输入,输出到标准输出
$ clang-format
$
$ ## 从文件输入,输出到标准输出
$ clang-format main.cc
$
$ ## 从文件输入,输出到原文件,即直接在原文件上修改
$ clang-format main.cc -i
$
$ ## 指名代码风格:LLVM,Google,Chromium,Mozilla,WebKit
$ clang-format -style=llvm main.cc
$
$ ## 将代码风格信息写入文件 .clang-format
$ clang-format -style=llvm -dump-config > .clang-format
$ 
$ ## 指明代码风格,代码风格存储在当前目录或任一父目录的文件 .clang-format 或 _clang-format 中
$ clang-format -style=file main.cc
$

在 Vim 中使用

  1. 查找文件 clang-format.py 所在的目录:$ dpkg -L clang-format | grep clang-format.py
  2. 在 .vimrc 中加入以下内容
function! Formatonsave()
  let l:formatdiff = 1
  py3f /clang-format.py
endfunction
autocmd BufWritePre *.h,*.cc,*.cpp call Formatonsave()

说明:

  1. 上述的内容表示:当使用 Vim 保存文件时,会按照当前目录 或 任一父目录的文件 .clang-format 或 __clang-format 指定的格式自动格式化代码
  2. 上述 指的是 clang-format.py 的目录
  3. let l:formatdiff = 1 的意思是只格式化修改过的部分,可以用 let l:lines = "all" 取代,表示格式化所有的内容
  4. 在 Ubuntu 18.04 LTS 下,clang-format 的默认版本为 clang-format-6.0,clang-format-6.0 的 clang-format.py 使用的是 Python 3,而 Ubuntu 18.04 LTS 默认的 Python 版本为 Python 2.7,所以上面使用的是 py3f 而不是 pyf

参考资源

  • ClangFormat
  • Ask Ubuntu
  • Stack Overflow

你可能感兴趣的:(ClangFormat 入门教程)