Python用のvimの設定

vimPython用の設定を行ったのでまとめておきます。

何ができる?

大まかに言うと次の5つが行えます。

  • コード補完
  • pep8チェック
  • Pyflakesチェック
  • McCabe複雑度チェック
  • pep8用インデント

前提

  • vimプラグインの管理にNeoBundleを使っています。
  • NeoBundleの使い方は省略しています。

コード補完 : jedi × jedi-vim

インストール

jedi : Pypi - jedi

pip install jedi

vimプラグイン : jedi-vim

NeoBundle 'davidhalter/jedi-vim'

cd ~/.vim/bundle/jedi-vim
git submodule update --init

設定

  • カスタマイズしない場合は、~/.vimrcに設定する必要はありません。
  • カスタマイズする場合は、davidhalter/jedi-vim > Optionsに方法が記載されています。

コード解析 : Flake8 × Flake8-vim

flake8で以下のチェックをまとめて行います。

  • pep8
  • PyFlakes
  • McCabe複雑度検出

インストール

flake8 : Pypi - flake8

pip install flake8

vimプラグイン : Flake8-vim

NeoBundle 'Flake8-vim'

設定

~/.vimrcの設定(参考)

"保存時に自動でチェック
let g:PyFlakeOnWrite = 1

"解析種別を設定
let g:PyFlakeCheckers = 'pep8,mccabe,pyflakes'

"McCabe複雑度の最大値
let g:PyFlakeDefaultComplexity=10

"visualモードでQを押すと自動で修正
let g:PyFlakeRangeCommand = 'Q'

詳細はGitHub > antviro/flake8 > Configurationに記載されています。

インデント : vim-python-pep8-indent

インストール

NeoBundle 'hynek/vim-python-pep8-indent'

設定

特に必要ありません。