読者です 読者をやめる 読者になる 読者になる

Blank File

LinuxとかPythonとかVimとか、趣味でいじる感じで

ついでにつれづれとPython関係

主に愚痴と思考の垂れ流しです。

Pythonvimで書いてます。

ざっとしたVimPython書く環境

実行はshellとthinca/vim-quickrunを気分で使い分け、テストコードは別ファイルタイプを設定して実行はquickrunにお任せ、vimの補完用/IDE化にjedi-vimとrope-vimを併用していたり、エラー表示にscrooloose/syntasticとフォークして少しいじった miyakogi/pyflakes-vimを併用してたり、テストのカバレッジ表示にalfredodeza/coveragepy.vim魔改造して使っていたりとかなりカオスな環境になっています。

この環境のせいもあって、Pythonの環境移行に手こずってます。

移行前後のPython環境

以前は

  • Python2.7
  • virtualenvは基本使わない
  • testはnose
  • (ほとんど使ってないけど)webフレームワークはFlask
  • テンプレートエンジンはJinja2

という感じでした。

ここから最近徐々に以下のように移行を進めています。

  • Python3系
  • 原則virtualenv環境で
  • testはpy.test
  • webフレームワークはPyramid
  • テンプレートエンジンはJinja2でとりあえず変わらず

これで問題になってきたのがvimPython関係の設定でした。

Python環境の違いによる問題

quickrunで実行する時はpythonなのかpython3なのか、virtualenvのものなのか。 virtualenv用のプラグイン(jmcantrell/vim-virtualenv)もありましたが、quickrunやテストランナーとの連携が私ちょっと試した感じだといまいちでした。さらにjediやropeの動作も怪しい気配が・・・。いやちゃんとShebangとか書いておいたらちゃんと動くのかもしれませんが、Linux以外でも書いたりするので・・・

あと今は問題ありませんが、テンプレートエンジンも後々Jinja2からMakoなどに変えたくなったり、その上でテンプレートファイルの拡張子を.htmlに統一したくなったらどうすんるんだろう、など悩みはつきません。Djando?・・・大規模開発にはとても便利だと思います。

今後書くコードは新しい環境で固定して設定も完全にそれ用にするのが一番ラクではあるのですが、過去のコードを触る必要に迫られることも多々あるわけで・・・そうなるとnoseで書かれたテストがpytestで実行されてエラー表示が悲しい感じになったりするわけです(一応テストは走る)。

対策という名目の思考の垂れ流し

なのでプロジェクトごとにいい感じに設定を変えられるvimプラグインないかなーと物色しています。雰囲気ではプロジェクトのハンドリングを効率化するプラグイン、ProjectLocal.vimをリリースしました。 - かなりすごいブログで紹介されているsupermomonga/projectlocal.vimなど近いかと思いましたが、私の目的は少しずれている感じです。コンセプトはすごく近く感じたので、同じようにプロジェクトごとに設定ファイルを用意する方針を考えています。ただもう少し設定が直接かけてしまう感じにしようかと。:source purject_setteiくらいの勢いで。ですがこれはこれで面倒そうです。

とにかくもう少し課題を明確にして方針を立てる必要があることはここまで垂れ流して分かって来ました。うまい具合にプラグイン化など出来れば公開したいと思います。