vim插件--代碼格式化工具

配置參考

Linux下vim配置clang-format的方法

vim中代碼格式化工具

  • vim-autoformat
  • 通過配置格式化文件,可以做到自動(dòng)格式化代碼的目的
  • 也可以手動(dòng)執(zhí)行一些命令格式化代碼
  • 格式化操作包括:
    • 自動(dòng)縮進(jìn) gg=G
    • 重新制表符 :retab
    • 移除尾部空格 :RemoveTrailingSpaces

安裝

前提

  • 首先確定已經(jīng)安裝了python2或者python3,在vim命令狀態(tài)下輸入如下命令驗(yàn)證,如果得到1表示已經(jīng)安裝了。
:echo has("python3") 
:echo has("python2").
  • 沒安裝則安裝如下安裝
    先 install pynvim
python3 -m pip install pynvim

.vimrc中添加python3的執(zhí)行文件路徑

let g:python3_host_prog="/path/to/python/executable/"

通過Vundle安裝

  • .vimrc中添加插件信息,然后重啟vim并執(zhí)行:PluginInstall命令
Plugin 'Chiel92/vim-autoformat'

使用

配置格式化程序

  • 你可以下載一個(gè)針對(duì)某個(gè)編程語言的格式化程序,比如clang-format。

  • 如果不指定特定語言的格式化程序,則使用默認(rèn)的格式化程序。

  • 格式化程序可以通過以下幾種方式自動(dòng)被vim檢測(cè)到

    1. 通過包管理工具下載的格式程序
    1. 通過在.vimrc中配置let g:formatterpath參數(shù)指向包含格式化程序的目錄,如下所示
let g:formatterpath = ['/some/path/to/a/folder', '/home/superman/formatters']

使用

  • 配置完成后,在vim中通過下面命令使用
:Autoformat
# 指定文件類型格式化
:Autoformat json
# 只格式化當(dāng)前行
:AutoformatLine
  • .vimrc配置每次保存文件時(shí),自動(dòng)格式化
au BufWrite * :Autoformat

clang-format配置

  • 下載
# fedora
sudo yum install clang
  • 配置路徑: 在clang-format二進(jìn)制所在的目錄下,執(zhí)行:
clang-format -dump-config -style=Google > .clang-format

會(huì)生成一個(gè).clang-format文件,這個(gè)文件在.vimrc中可以配置為使用的格式:

let g:clang_format#command = 'clang-format'
nmap <F4> :ClangFormat<cr>
autocmd FileType c ClangFormatAutoEnable
let g:clang_format#detect_style_file = 1
  • 驗(yàn)證配置成功與否
    用vim打開任一文件,執(zhí)行:echo executable('clang-format')看看輸出是否為1,若是則代表clang-format在vim中是可執(zhí)行的。

可以打開任一C/C++文件,直接按F4執(zhí)行clang-format了。

批量格式化目錄下的文件

經(jīng)常需要對(duì)一個(gè)目錄下所有指定后綴的文件做批量格式化處理,指令如下:

clang-format -style=file -i `find . -type f -regex ".*\.\(cpp\|h\)"`
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容