jedi-vimはpythonコードを書くときに コード補完をしてくれるjedi をVimで使うためのプラグインです。 これを使いたいがためにVimをpythonサポートで入れなおしたりしてましたが、 jedi本体の入れ方が面倒だったり 何やら落ちたりWarningが出たりと途中で投げ出してました。 再度挑戦しようと思ったらdev版があって、それを入れたら 全て簡単に上手くいった、という話です。
jedi-vim_devのインストール
Warningメッセージでちょっと検索してた所下のページがヒット。
実際にはここに出ている意外にもWaningが出てたりおかしな挙動があったのですが 取り敢えず使ってみることに。
dev版のインストールはNeoBundle等を使っていれば簡単で、
" Python autocompletion
NeoBundleLazy "davidhalter/jedi-vim", {
\ "rev" : 'dev',
\ "autoload": {
\ "filetypes": [ "python", "python3", "djangohtml"]}}
この様に、revision
(rev
)にdrv
を指定するだけです。
すると、~/.vim/bundle/
以下にはjedi-vim_dev
というディレクトリ名で
プラグインがインストールされます。
jedi-vim_devの良い所
取り敢えず、上記のリンク先にあるWarningは消えてくれましたし、 その他にも出てたWarning等も一通り消えて問題なく動く様になりました。
通常版だと、jediだけ別個に入れるか、
jedi-vimの中で手動でsubmoduleとしてインストールする
1必要があります。
jedi-vimを入れてる.vimrc
だと
NeoBundleLazy "davidhalter/jedi-vim", {
\ "autoload": {
\ "filetypes": ["python", "python3", "djangohtml"]},
\ "build": {
\ "mac": "pip install jedi",
\ "unix": "pip install jedi" }}
こんな感じでjedi-vimインストール時に自動的にpipでインストールしてしまう、 と言った方法もよく見ます。
追記
dev版だから自動でインストールされる、と言うのは嘘でした。
取り敢えずMacの場合、別個にjediをpipで入れていたので気づきませんでしたが、
jedi-vim以下にあるjediは空のディレクトリでした。
これは.gitmodules
にjediがsubmoduleとして登録されているので、
空のディレクトリだけがjedi-vimをcloneした時に出来るのは正しい動きのはず。
jedi-vimのディレクトリでgit submodule update --init
することでインストール出来ます。
これが使っているLinux環境だとjedi-vimをcloneした時にjediの中身も取ってきていました。 (masterでもdevでも)
Cygwinの場合は、元々https
が理解出来ないと言うエラーで
git submodule update --init
自体が働いてなかったのでインストールされていませんでしたが
2、
gitを対応せきる用アップデート後はjediが最初からインストールされるようになりました。
…
と、ここまでgitのversion(1.8.1.3-1.8.4まで様々)やVimのversion等の違いも疑ってきましたが、
どうやらNeoBundleのversionの違いだったようで、
Macで一度:NeoBundleUpdate
をしてからjedi-vimを再インストールしたらjediも直接インストールされました。
どうやらNeoBundleでインストールする際にはsubmoduleの初期化を行う様になった様です。
追記ここまで
追記
また、pythonファイルを最初に開いた時に遅く感じたのはjediをインストールしているからではないので、 何やらメモリかtmpファイルにロードしているからでしょうか?
実際、新しいシェルを立ち上げてpythonファイルを開くと再び最初は遅かったりします。 シェルを立ち上げて最初だけなのでそれ程問題ないわけですが、 できればなんとかしたい所…
追記ここまで
これでやっとjediの恩恵を受けられます。
その他jedi-vim + Python for vim用メモリンク
まだあまり初期設定からいじってないこともあるので 備忘録用リンク集:
Ref: edi-vim の設定
Ref:
VimでPython環境をいい感じに整える
Ref: Python用のvimの設定