ほとんどの 3 番目のライブラリはそのままで動作するはずです。Django はオートコンプリートにあまり適していません。環境に変数DJANGO_SETTINGS
を設定する必要があります。そうしないと、ほとんどのインポートで不適切に構成された例外が発生し、オートコンプリートが機能しません。
この変数は、virtualenv で設定するか、シェルでエイリアスを使用して設定するか、次のようなものを使用して設定できます.vimrc
。
function FindDjangoSettings()
if strlen($VIRTUAL_ENV) && has('python')
let output = system("find $VIRTUAL_ENV \\( -wholename '*/lib/*' -or -wholename '*/install/' \\) -or \\( -name 'settings.py' -print0 \\) | tr '\n' ' '")
let outarray= split(output, '[\/]\+')
let module = outarray[-2] . '.' . 'settings'
let syspath = system("python -c 'import sys; print sys.path' | tr '\n' ' ' ")
" let curpath = '/' . join(outarray[:-2], '/')
execute 'python import sys, os'
" execute 'python sys.path.append("' . curpath . '")'
" execute 'python sys.path.append("' . syspath . '")'
execute 'python sys.path = ' . syspath
execute 'python os.environ.setdefault("DJANGO_SETTINGS_MODULE", "' . module . '")'
endif
endfunction
autocmd FileType python call FindDjangoSettings()
これはvirtualenv
、プロジェクトに使用していることを前提としており、django 以外のものに virtualenv を使用している場合は気になるかもしれません。
また、 you complete me plugin を確認することをお勧めします。これはすばらしい完全なプラグインです。これは jedi の代わりではありません。実際、python 補完の依存関係として jedi があります。