はじめに
この記事ではPythonの良い書き方を身につけるためにVimからLintツールを使う方法を紹介する。
Pythonは前から使う必要があるときに書いていたが、これから書く機会も増えるだろうから本格的に学ぼうと考えている。 そこで、良い書き方を身につけるためにLint系のツールを導入した。
結論
Flake8に以下のプラグインを入れて使うのが最強っぽい。
- hacking
- flake8-import-order
- flake8-docstrings
Flake8
Flake8: Your Tool For Style Guide Enforcement — flake8 3.4.1 documentation
Flake8はPythonのコードチェックツールである。 複数のコードチェックツールのラッパーであり、つまり広範囲のコードチェックをやってくれる。
PythonのLintで調べるとPEP 8やらpyflakesやら色々見つかるが、とりあえずFlake8だけ入れておけば良い。
参考:
Flake8のプラグイン
Flake8はプラグイン機構を持っており、プラグインによってより厳しくチェックできる。
有名なプラグインにOpenStackのStyle Guildelinesのルールをチェックするhackingがある。 OpenStack Docs: hacking: OpenStack Hacking Guideline Enforcement
今回の目的は修行で厳しければ厳しいほどありがたいため以下のプラグインを導入した。
- hacking
- flake8-import-order
- flake8-docstrings1
- pep8-naming
- flake8-double-quotes
参考: Python の Lint (文法チェッカ) まとめ - flake8 + hacking を使う - - Qiita
インストール
pipでインストールする。
pip install flake8 hacking flake8-import-order flake8-docstrings pep8-naming flake8-double-quotes
Vimで使う
とりあえずここではシンプルに、syntasticを使って保存時にチェックするようにする。 いろいろカスタマイズはできると思う。
" ...
NeoBundle 'scrooloose/syntastic'
" ...
let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': ['python'] }
let g:syntastic_python_checkers = ['flake8']
NeoBundle
を使っている場合はこんな感じ。
参考:
- Vimメモ : flake8でPythonのコードをチェックする - もた日記
- vim で python を書いてる時に flake8 をいい感じに実行する - Hack like a rolling stone
おわりに
これでだめな書き方は指摘されるようになったので、指摘を潰していけばまぁまぁ良い書き方ができるようになるのではないかと思う。 Python書いていくぞい 💪
-
flake8-pep257は古くてルールがコンフリクトしてる ↩︎