vim で python 開発するとき pyflakes + PEP8 = flake8 が便利

補完とかは Python 開発で便利な jedi-vim いれてみたらたしかにライフチェンジングだった - AtAsAtAmAtArA とかみよう。

PEP8 する必要があった

今まではシンタックスだけの pyflakes だけしてた。PEP8 はある程度守ってるけど80行折り返しと行間については多少自分のやり方でまあいいかなって思ってからだ。でも今回は PEP8 準拠でやろうってことになった。ということで vim-pep8 いれようとしたらなくなってて、 flake8 ってのに統一されてた。

flake8 ってなに

pyflakes + PEP8 つまりシンタックスチェックと python 的なコーディングルールの両方をパッケージにしたもの。
flake8 2.0 : Python Package Index

flake8 導入

まんまです

pip install flake8

virtualenv 環境だし virtualenv.vim もいれてます。

vim でつかう

vim-flake8/ftplugin/python_flake8.vim at master · nvie/vim-flake8 · GitHub
Using syntastic with vim (and a vim bug on OSX) - Statisfactory
自分の場合 syntactic + pyflakes でやってるのでいろいろ試行錯誤した結果 pyflakes-pathogen + vim-flake8 に落ち着いた。なんか公式だと「vim-pathogen でやってね」ってあるけど、自分は NeoBundle だし、じゃあ vim-pathogen いれて pyflakes-pathogen やめたりしたら syntactic でシンタックスが自動化されなくて微妙だったからこうした。

まあ

flake8 めっちゃべんり

あと、PEP8って

けっこうメジャーなライブラリでも完全には順守されてないっぽい感じではあった。Django とか(Django は Pyhton じゃないよねとかそういうあれではなくて)。こうして自動チェックいれてしまうとそれ準拠じゃないとかえって気持ち悪いくらいになっちゃうけど、じゃあそれを言語仕様までにいれたらキツすぎるのはまあある。パーフェクトPython の感想で「Zen of Python いいね」みたいなことかいたけど、「Python のインデントだるい」という感覚少し思い出した。感じた。