vimproc+quickrunでvirtualenv+pythonz環境のpythonを高速実行
vim環境構築に勤しんでおります(`・ω・´)
色々pluginを入れつつ、python開発環境構築。
参考サイトはここ。
Hashnote -
Vimを最強のPython IDEにする
quickrun
そこでひとつ便利なプラグインがquickrun。
拡張子より実行するコマンドを自動的に選択し、
\+rというショートカットで起動できるすぐれものです。
pythonのようなスクリプト言語にはもってこい(`・ω・´)
でも一つ欠点が…
このquickrun、通常だとグローバルな環境変数に則った実行ファイルを選んでくるんです。
例えば /usr/bin/python みたいな。
これがvirtualenv使いとしては(´・ω・`)な感じ。
自分の環境はpythonzでCPython2.7.3をインストール、ソレをvirtualenv環境下に紐付けて使ってます。
なので実行ファイルは~/.virtualenv/[virtualenv_name]/bin/pythonだし、
モジュールの参照先は~/.virtualenv/[virtualenv_name]/lib/python2.7以下を見てもらわにゃ困る…
vimproc
そこで今回使用したのがvimproc。
なんか、非同期実行とかがメインの使い方?っぽいですね。
今回はそちらより、環境変数の参照先を変更する目的で使ってます。
Vim-users.jp - Hack #168: シェル以外から立ち上げたVimでもシェル側の環境変数PATHを考慮したコマンドの呼び出しを行う
こちらのサイトではバージョン違いのrubyをどう使うか?を話題にしてますが、
virtualenvでもおんなじことです。
インストールにはBundleするだけでなく、dllとかをmakeする手順が要ります。(たいしたことないけど)
使用法は以下のとおり。
:VimProcBang python %
*** python bin *** ~/.virtualenvs/[virtualenv_name]/bin/python *** python path list *** ~/currentDir ~/.virtualenvs/[virtualenv_name]/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg ~/.virtualenvs/[virtualenv_name]/lib/python2.7/site-packages/pip-1.1-py2.7.egg ~/dotfiles/vimfiles/bundle/vim-django-support/ftplugin/python/lib ~/.virtualenvs/[virtualenv_name]/lib/python27.zip ~/.virtualenvs/[virtualenv_name]/lib/python2.7 ~/.virtualenvs/[virtualenv_name]/lib/python2.7/plat-darwin ~/.virtualenvs/[virtualenv_name]/lib/python2.7/plat-mac ~/.virtualenvs/[virtualenv_name]/lib/python2.7/plat-mac/lib-scriptpackages ~/.virtualenvs/[virtualenv_name]/lib/python2.7/lib-tk ~/.virtualenvs/[virtualenv_name]/lib/python2.7/lib-old ~/.virtualenvs/[virtualenv_name]/lib/python2.7/lib-dynload ~/.pythonz/pythons/CPython-2.7.3/lib/python2.7 ~/.pythonz/pythons/CPython-2.7.3/lib/python2.7/plat-darwin ~/.pythonz/pythons/CPython-2.7.3/lib/python2.7/lib-tk ~/.pythonz/pythons/CPython-2.7.3/lib/python2.7/plat-mac ~/.pythonz/pythons/CPython-2.7.3/lib/python2.7/plat-mac/lib-scriptpackages ~/.virtualenvs/[virtualenv_name]/lib/python2.7/site-packages
pythonのパスが.virtualenv下に通ってますね(・∀・)
quickrun + vimproc
んで毎回:VimProcBang python %と打つのはめんどくさいので、~/.vimrcに以下を追記。
let g:quickrun_config = {} let g:quickrun_config['*'] = {'runner': 'vimproc'}
参考サイトも含め、多くのサイトでは
let g:quickrun_config['*'].runmode = "async:remote:vimproc"} と書いてありますが、なぜか動かず…
とりあえず以上のように設定したらショートカットでうまいことvirtualenv環境になったのでよし(・∀・)
なにかご指摘あればお願いします!
とりあえずvim scriptは勉強せななぁ(・ω・)