flake8-vim
ソースコードの見た目は綺麗にしたい派、とりあえずPython書くならpep8は守っておこうぜ派です。
コーディングスタイルの統一が出来ていなかった時代のソースコードを弄るとき、あるいは書き途中のソースコードでpep8に怒られたとき、手動でそれらを整形していくのは面倒です。
面倒だと誰も守らなくなるので、IDE使うかエディタにこだわるなら自動整形プラグインを入れましょう。
なお新しいプロジェクトとかであれば保存するたびに強制的にautopep8という手段もありますが、したくないとかしたら困る場合もあるわけですね。
そこんところをよしなにやっつけてくれる、autopep8というモジュールが存在します。
ただしこのようなモジュールのままでは、使うのが面倒なのでVimのプラグインを使いましょう。
andviro/flake8-vimには、flake8と一緒にautopep8用の関数も提供されています。
flake8-vimをインストールした状態で、編集したい行を選択して:'<,'>PyFlakeAuto
を実行してみましょう。
# ビフォーdefmain():d={'a':111,'b':'cc','c':12}if0:print1foo='aa'+'bb'returnaa
# アフターdefmain():d={'a':111,'b':'cc','c':12}if0:print1foo='aa'+'bb'returnaa
というような感じです。地味に末尾スペースも削除してくれています。
下の E226 missing whitespace around arithmetic operator [pep8]
が解消されない事に今気がついたのですが、これはもしかしたらautopep8かどっかのバグかもしんないですね。後で適当になんかしましょう。
operatorの導入
怠惰系男子が多いvimmerにとって、v
でわざわざ範囲選択をしてコマンドを実行するというような冗長な操作は堪え難い苦行かもしれません。
というわけでoperatorとtextobjも入れておきます。
あとは適当に
map ,p<Plug>(operator-autopep8)
のような設定を入れておけば、先ほどの操作は,paf
という簡潔なキーバインドで解決するわけですね。しかも関数本体が何行あっても同じ操作でいけちゃいます。
他にも、辞書リテラルのインデント崩れを直したり(,pa{}
)と、入れてみると結構便利です。
我々はこういうエコを通じてラッコやイルカに配慮する必要があります。