Python
Vim
neobundle
pandas
neovim

【Python環境整備】脱NeoBundle。超便利補完プラグインjedi-vimの環境をdeinで整えて快適になる設定までやる

More than 1 year has passed since last update.

jedi-vimの設定についての記事は多いのですがNeoBundleやneocompleteと合わせた設定の記事ばかりだったのでdein.vimバージョンを書きます。

概要

  • jedi-vimの設定をNeoBudleではなくdein.vimで行う
  • jedi-vimの保管時のポップアップを表示しなくさせる
  • . を打った瞬間に補完するというのをやめる
  • neovimで快適にPythonプログラミングできる

環境

項目 version
OS OS X Yosemite
Python Python2.7.10
neovim NVIM 0.1.4

jedi-vim 導入

dein.vimでvimのplugin管理を参考にdein_lazy.tomlにjedi-vimの設定を書きました。

最小限の設定

最小限の設定が良いという方はこちらの設定をコピペしてください。概要の通りポップアップとか自動補完を無くしたい方は眺めるだけに留めておいてください。
ちょっと雑談ですが、プラグインインストール後に設定ファイルを書き換えても設定が反映されなくて困っています。どなたかわかる方いましたら教えて頂けると幸いです。現状ではプラグインの設定を書き換える度にプラグイン本体を消して再インストールしています(;_;)

dein_lazy.toml
[[plugins]]
repo = 'davidhalter/jedi-vim'
on_ft = 'python'

この設定を書いたのち hogehoge.pyをneovimで開くとjedi-vimのインストールが始まるかと思います。
:h jediとかでちゃんとhelpが表示されればインストールできてるということです。
この設定でも十分に便利だとは思います。
ただ、ちょっと不便だと感じるケースがあって、簡単なコードで説明します。

test.py
import pandas as pd

list. #この補完はすぐさま候補がでてきて嬉しい

pd. #pandasなどだと補完候補を提示してくるまですごく時間がかかってストレス

Pandasを使うケースが多いのでどうにかしたいということで、補完は自動ではなく自身のタイミングで開始するようにしたいと考えました。それと最低限の設定だと補完候補を移動する度に画面上半分にその候補の説明文(英語)が表示されます。正直見ないと思ったのでこれも消したいと思います。
最小限の設定後はこんな感じになります。
min_qiita.png

赤枠内がポップアップです。

pd_qiita.png

numpyとかの補完もけっこうかかります。
pandas [B] ってやつはdeopleteによる補完候補です。ファイル内で既出の単語が候補として出てきてます。

ポップアップなし. 自動補完なしの設定

オリジナルのリポジトリdavidhalter/jedi-vim
のREADMEを参考に設定してみました。

dein_lazy.toml
[[plugins]]
repo = 'davidhalter/jedi-vim'
on_ft = 'python'
hook_add = '''
  let g:jedi#use_tabs_not_buffers = 1 #補完で次の候補に進むときにtabを使えるという設定にしたつもりですができませんでした。
  let g:jedi#popup_select_first = 0 #1個目の候補が入力されるっていう設定を解除
  let g:jedi#popup_on_dot = 0 # .を入力すると補完が始まるという設定を解除
  let g:jedi#goto_command = "<leader>d"
  let g:jedi#goto_assignments_command = "<leader>g"
  let g:jedi#goto_definitions_command = ""
  let g:jedi#documentation_command = "K"
  let g:jedi#usages_command = "<leader>n"
  let g:jedi#rename_command = "<leader>R" #quick-runと競合しないように大文字Rに変更. READMEだと<leader>r
  autocmd FileType python setlocal completeopt-=preview #ポップアップを表示しない
'''

この設定を書いたのち、適当なpythonファイルを開くとインストールが始まるはずです。
補完したいタイミングで<C+Space> (コントロール + スペース)を入力すると補完候補が表示するようにしました。
ポップアップも表示されなくなるはずです。

↓こんな感じ↓
スクリーンショット 2016-07-15 16.20.03.png

pd.rea まで入力してから<C + Space>を押したらこうなったよって画像です。
ポップアップも出ていませんし、途中まで打って候補数が減っているからかあまり待たされませんでした。

普通のVimを使ってた頃は最小限しか設定しておらず、毎回 pd. で待たされていて苦痛でしたが今回で解消できてよかったです。
jedi-vimを使っていて、自動補完に悩んでいる方、読みもしないポップアップで編集画面がガタガタして困っている方は是非やってみてください。

参考

dein.vimでvimのplugin管理

davidhalter/jedi-vim

[vim]python補完プラグイン「jedi-vim」を快適にする方法(jedi-vim+neocomplete)