気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

pythonのコード解析プラグインを検討する

pythonのパッケージ管理に引き続き、 開発環境設定を進めてみる。

pythonのコード規約がわかっていないので、 規約を覚える意味でもプラグイン導入してみる。
導入は必須に近いツールな気がするが。。

以下を導入してみます。

  • コード解析ツール(flake8, flake8-vim)
  • コード解析関連ツール(autopep8, vim-autopep8, ale)

コード解析ツール(flake8, flake8-vim)

pythonパッケージ

$ pip3 install flake8

vimパッケージ

.vimrcのNeoBundleのプラグイン記載部分に追記
設定は以下ブログの設定を頂きました。

Vimメモ : flake8でPythonのコードをチェックする - もた日記

" python 構文エラーの検出
NeoBundle 'andviro/flake8-vim'

"-------------------------
" [python] vim-flake8
"------------------------
autocmd BufWritePost *.py call Flake8() " 保存時にチェックする
let g:flake8_quickfix_location="topleft" " Quickfixの位置
let g:flake8_quickfix_height=7 " Quickfixの高さ
let g:flake8_show_in_gutter=1  " 左端にシンボルを表示
let g:flake8_show_in_file=1  " ファイル内にマークを表示

コード解析によるエラーコード参考URL

Introduction — pycodestyle 2.4.0 documentation

Error / Violation Codes — flake8 3.5.0 documentation

コード解析関連ツール(autopep8, vim-autopep8, ale)

コード解析エラーを一部自動修正するプラグイン(tell-k/vim-autopep8)と コード解析結果をコード修正中にも非同期に反映させてくれる(w0rp/ale) も導入する。使って見てまた、変えるかもしれないけど。

pythonパッケージ

$ pip3 install autopep8

vimパッケージ

.vimrcのNeoBundleのパッケージ記載部分にに以下を追記

NeoBundle 'tell-k/vim-autopep8'
NeoBundle 'w0rp/ale'

非同期チェックの方は、Lintツールが正しく設定してあれば、 インストールのみでうまく動作するみたい。

プラグイン導入までに試したこと

Flake8-vimをインストールしてみる

Flake8-vimというflake8-vimと同じようなプラグイン(作者は同じ)
をいれてみたが、vimを開いた時点で以下のエラーが出力されてしまい、
うまく動作せず。

error: PyFlake.vim required vim compiled with +python

vimではpython3を使いたいのにpython2を使ってね。
と言われて、詰んだ。

githubをみたら、Flake8-vimは2013年で更新が止まっているっぽい。
flake8-vimは問題なく動いたので、Flake8-vimは~/.vim/bundleから手動で削除した。

synstasticにpythonの設定を追記して試してみる

以下を設定を.vimrcに設定して、動作確認してみたりした。

let g:syntastic_python_checkers = ["flake8"]

動作違和感はなかったけど、
vim-flake8はflake8専用だし、手軽かもってどっかのブログに書いてたので、
思い直してこちらを使うのはやめた。rubyの方がsynstasticを使っている。