くろねこ日記

ソフトウェアに関する技術メモが多いです.

VimのコンパイルとJedi-Vimの設定と第二回Sapporovimのお礼

はじめに

Vimコンパイル(オプション指定をメモ)とjedi-vimではまったところをメモしておきます.

というのもhomebrewやバイナリ配布のVimではpyenvにあるpythonパスを読んでくれないためにjedi-vimがうまく動いてくれなかったからです.

そこで今回は解決策の一つとしてらぁさんが作っているvimenv(https://github.com/raa0121/vimenv)を使ってvim7.4を導入して,そのときにビルドすることで~/pyenv/shims以下を呼ぶようにします. そのあとにjediのインストールを行なって補完なども効くようにするというものです.

何度かこの方法を使う機会がありました.そのたびに,コマンド履歴を参照して調べるのがツラいので今日こそメモしておきます.

あとここに書いてあることは第二回Sapporo.vimで@thincaさんと@raa0121さんに教えていただきましたのでここでお礼を述べさせていただきます.

ありがとうございました!

vimenvの導入

vimenvは次のような手順で導入してください

git clone https://github.com/raa0121/vimenv.git ~/.vimenv

そのあとにこちらのブログで紹介されているvim-buildを導入します http://yasu-n1.hatenablog.com/entry/2013/10/03/201819

cd ~/.vimenv
git clone https://github.com/yasu-n/vim-build.git ~/.vimenv/plugins/vim-build
exec $SHELL -l

ここまで行ったら次にvimのビルドを開始します.ただし,pythonとタイプすると~/.pyenv/shims/pythonから呼べるようにしておいてください.

今回のvimはluajitもオプションに加えようと思います. 僕の場合,luajitは以下のようにluaenvで導入したものを使ってます.

luaenv install luajit-2.0.3
luaenv global 2.0.3
luaenv rehash

ではここからvimenvでvimをインストールしましょう.

vimenv install -- --with-compiledby=kuroneko --enable-pythoninterp --enable-perlinterp --enable-python3interp --enable-rubyinterp --with-lua-prefix=/path/to/.anyenv/envs/luaenv/versions/luajit-2.0.3 --enable-luainterp --with-luajit --enable-multibyte --enable-fail-if-missing

長いですがこんな感じです.

jediでつまづいたところ

jedi-vimpythonを強力に補完したり,pydocをコード中に参照してくれるプラグインです.

ただし,jediはvim上で動くpythonpathから参照するため,pythonpathの設定をやらないでおくとコード補完がうまく効かない恐れがあります. 僕はしばらくの間これで悩んでいたのですがPYTHONPATHの設定を追加しておけば良かったようです.

たとえば,pyenvの3.4.1のライブラリをjediに参照させたいなら zshrcかbashrcの上で

export PYTHONPATH='/path/to/pyenv/versions/3.4.1/lib/python3.4/site-packages/'

の一文を追加するだけです

これでvimを起動して

:python import sys;print(sys.path)

で今追加したPATHが表示されることを確認してください.

第二回Sapporo.vimへのお礼

今日書いた内容は第二回Sapporo.vimもくもく会に参加したときにやっていたことです. PYTHONPATHがvimからうまく参照できてないところについてはthincaさんに教えていただきました(quickrunで有名な方が向かいの席でびっくり...).vimenvの紹介と使い方はらぁさんに教えていただきました.

勉強会は2時間程度遅刻したこともあって(くろねこ界の最長記録樹立!),もくもくタイム自体は少なかったのですが,有益な時間を過させていただきました.

ただ,会場についてから,自宅同然にもくもくしてしまったので勿体ないことをしてました(ただ,もくもくするのは勿体ないという声が聞こえてきましたがその通りですね).もうちょっと他の人とも交流できればよかったのですが,タイミングが掴めませんでした(このあたりコミュニケーション能力の低さが顕著に表れてますね...).またお会いする機会があれば楽しみにしております.

この日は発表もあって,@supermomongaさんがEmacs上でVimと同等の動作をさせることができるEmacsEvilの発表(Evilの今後に期待),@Linda_ppさんがVim初心者向けに講座を開いてくれました(わかりやすかったです).

ありがとうございました.

まとめ

vimenvでvim導入してみた.

jediのはまったところをメモ

第二回Sapporo.vimの感想とお礼,