yskma’s blog

日々の作業の備忘録@株式会社ビズオーシャン

jedi-vimの補完がpandasだと遅い問題

プラグイン管理にdein.vimを利用してjedi-vimを入れて使っているのだが、pandasの自動補完が遅くて辛かったので設定を変更。

 

import pandas as pd

pd.

上記のようにピリオドを入力したときに自動で補完が働くのだが、候補が出てくるのが妙に遅く、ピリオドを打つたびに入力できない状態で待たされて手が止まってしまう。これをどうにかしたい。
あとついでに候補選択時に説明ウィンドウが表示されるのも煩わしいので消したい。

devidhalter/jedi-vimのREADMEを参考にして
dein-vimの設定ファイルdein_lazy.tomlを適当にいじる。
github.com

 
変更前。ただインストールしただけの状態。

dein_lazy.toml

[[plugins]]
repo = 'devidhalter/jedi-vim'
ob_ft = 'python'

変更後
勝手に1番目の候補を入力しないようにする設定もあったのであわせて追加した。

dein_lazy.toml

[[plugins]]
repo = 'devidhalter/jedi-vim'
ob_ft = 'python'
hook_add = '''
    # .入力時に補完候補を表示しない
    let g:jedi#popup_on_dot = 0
    # 勝手に最初の候補を入力しない
    let g:jedi#popup_select_first = 0
    # docstringは表示しない
    autocmd FileType python setlocal completeopt-=preview
'''

あとは必要な時だけCtrl+スペースで補完候補を呼び出すようにする。
ピリオド入力後に数文字入れてから補完すれば、候補が絞られるからか待ち時間が短縮されていた。