rcmdnk's blog
Last update

jedi-vimはpythonコードを書くときに コード補完をしてくれるjedi をVimで使うためのプラグインです。 これを使いたいがためにVimをpythonサポートで入れなおしたりしてましたが、 jedi本体の入れ方が面倒だったり 何やら落ちたりWarningが出たりと途中で投げ出してました。 再度挑戦しようと思ったらdev版があって、それを入れたら 全て簡単に上手くいった、という話です。

Sponsored Links

jedi-vim_devのインストール

Warningメッセージでちょっと検索してた所下のページがヒット。

Ref: jedi.vim に Pull Request した

実際にはここに出ている意外にも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等も一通り消えて問題なく動く様になりました。

さらにdev版では、jediをjedi-vim初回起動時に自動的にインストールする 様になっているみたいです。

通常版だと、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版では、恐らくsubmodule化コマンドを初回に打つ様になったようです。 (コード見てませんが、起動後`~/.vim/bundle/jedi-vim_dev/jedi`にインストールされているので。) なので、一番最初に立ち上げた時、驚く程遅くてびっくりしましたが、 2回目以降は快適に立ち上がりました。

追記

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: python 補完のVimプラグイン「jedi-vim」がスゲー

Ref: edi-vim の設定

Ref: jedi.vim で virtualenv を使ってる場合の補完

Ref: jedi-vim(ジュダイ-ヴィム)で2ヶ月近くハマった話

Ref: VimでPython環境をいい感じに整える

Ref: Vimを最強のPython開発環境にする2

Ref: Python用のvimの設定

Sponsored Links
Sponsored Links

« MagicFormation: Windowsで使っているランチャー AutoHotkeyのインストール »