ほとんどの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でその素晴らしい、完全なプラグインを見てすることをお勧めいたします
、それは実際には、それはPythonの完了のための依存関係としてジェダイあり、ジェダイに代わるものではありません。
'set omnifunc'と':messages'を投稿してください。 –
おそらく関連しています:http://stackoverflow.com/questions/2084875/vims-omnicompletion-with-python-just-doesnt-work。つまり、 ':py print(sys.path)'が示すものを確認してください。 – Yosh