MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

C++用おすすめvim設定&プラグイン

目次

 

はじめに

先日、

PythonとMarkdownのおすすめvim設定&プラグインを紹介したので、

最後にC++プログラムを開発する際に便利な

vim設定とプラグインを紹介したいと思います。

myenigma.hatenablog.com

myenigma.hatenablog.com

C++コードフォーマッタ clang-format

clang-formatはC, C++, Objective-C の

コードフォーマットツールです。

 

clangというAppleやGoogleが開発している

コンパイラの一部であり、

clang-formatもその一つとして開発されています。

Clang - Wikipedia

 

このツールを利用することにより、

簡単にC++のコードをフォーマットすることができます。

 

ubuntuでのインストール

apt-getを使ってバージョンを指定してインストールできます。

apt-get clang-format-3.6

 

Macでのインストール

Homebrewを使っている場合は、

下記のコマンドでOKです。

brew install clang-format

 

コマンドラインからclang-formatを使う

コマンドラインからclang-formatを下記のように使うことで、

C,C++,Object-Cのコードをフォーマットすることができます。

clang-format -style={style} [-i] {file}

-iはフォーマットしたファイルを

フォーマット後のコードで置き換えるオプションです。

styleはフォーマットのスタイルを下記の中から選ぶことができます。

{style} = LLVM, Google, Chromium, Mozilla, WebKit

 

下記はtest.cppをGoogleのフォーマットスタイルに合わせる

サンプルコマンドです。

clang-format -style=Google -i test.cpp

 

vimでclang-formatを使う

上記のようにコマンドラインから

clang-formatを使っても良いですが、

やはりvimでコードを書いている時に

フォーマットしたくなります。

 

そこで、

clang-formatのドキュメントで紹介されている

下記のvimスクリプトを.vimrcに追記することで、

ファイル保存時に自動的にコードのフォーマットが実行されるようにしています。

function! CPPCodeCleanup()
  " echo "Cleanup cpp code"
  let l:lines="all"
  let g:clang_format_fallback_style = 'Google'
  :pyf /usr/local/share/clang/clang-format.py
endfunction
command! CPPCodeCleanup call CPPCodeCleanup()

autocmd BufWrite *.{cpp} :CPPCodeCleanup
autocmd BufWrite *.{hpp} :CPPCodeCleanup
autocmd BufWrite *.{c} :CPPCodeCleanup
autocmd BufWrite *.{h} :CPPCodeCleanup

下記の資料を参考にさせて頂きました。

 

C/C++のコード補完(vim-clang)

C/C++のコード補完をより協力にするために、

vim-clangという補完プラグインを使っています。

github.com

設定等は下記の記事を参照下さい。

 

Doxygenスタイルの関数コメントの自動挿入

DoxygenToolkitというプラグインを導入することで、

関数のコメントを自動で挿入することができます。

 

インストールはNeoBundleで一発です。

NeoBundle 'vim-scripts/DoxygenToolkit'

 

C/C++の関数の先頭行で

:Dox

とすると、

自動的にDoxygenスタイルのコメントを自動挿入してくれます。

引数や返り値なども自動で入力されるので非常に便利です。

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com