Vim與clang-format

前一段時間因工做須要參與了一個開源項目,在向github提交代碼後提示格式校驗失敗。html

項目的管理者告知,要想修改的代碼能入庫須要使用Clang-Format校驗。git

須要使用下面的命令對上次的修改從新格式化下:github

git show HEAD | clang-format-diff-3.9 -p 1 -style=file -i

經過調查瞭解到此開源項目是使用Clang Tools來管理代碼的格式,可以使用ClangCheck來校驗代碼的格式問題,使用clang-format來格式化代碼。vim

咱們爲何不能夠在IDE中直接集成Clang工具自動格式化代碼嗎?bash

我使用的IDE是VIM,我相信如此強大的工具必然能實現此功能,在官網http://clang.llvm.org/docs/ClangTools.html 我如願的找到了資料。工具

首先須要安裝clang-formatcode

sudo apt-get install clang-format-3.9
ln -s /usr/bin/clang-format-3.9 /usr/bin/clang-format

而後orm

cd ~/sbin;
wget https://raw.githubusercontent.com/llvm/llvm-project/master/clang/tools/clang-format/clang-format.py

再修改~/.vimrc來配置clang-format.py使用方法,增長如下內容htm

"""""""""""""""""""""""""""""""""""""""""""""""
" Seting clang-format
"""""""""""""""""""""""""""""""""""""""""""""""
map <C-F> :pyf ~/sbin/clang-format.py<cr>
imap <C-F> <c-o>:pyf ~/sbin/clang-format.py<cr>
function! Formatonsave()
    let l:formatdiff = 1
    pyf ~/sbin/clang-format.py
endfunction
autocmd BufWritePre *.c,*.h,*.cc,*.cpp call Formatonsave()

這樣當編輯*.c,*.h,*.cc,*.cpp時,會自動格式化,也能夠是使用ctrl+f格式化一行或者選中的區域。get

clang-format默認是使用llvm格式,用戶也可根據須要配置格式化參數。

可行在工做路徑的最上層路徑,使用如下方式生成.clang-format文件,而後可根據須要修改參數。

clang-format -style=llvm -dump-config > .clang-format

-style=xxxx  可以使用LLVM, Google, Chromium, Mozilla, WebKit

相關文章
相關標籤/搜索