Hầu hết thư viện thứ ba sẽ hoạt động tốt, tự động hoàn thành quá trình tự động hoàn thành, bạn cần đặt trong môi trường của mình biến số DJANGO_SETTINGS
, nếu không phần lớn nhập sẽ tăng ngoại lệ được định cấu hình không đúng và tự động hoàn thành sẽ không hoạt động .
Bạn có thể đặt biến này trong bạn virtualenv, hoặc với một bí danh trong shell của bạn, hoặc sử dụng một cái gì đó như thế này trong .vimrc
của bạn:
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()
này giả định rằng bạn đang sử dụng virtualenv
cho các dự án của bạn, và có thể làm phiền bạn nếu bạn đang sử dụng một virtualenv cho cái gì đó không phải là django.
Tôi cũng khuyên bạn nên có một cái nhìn trong you complete me plugin, một plugin hoàn chỉnh tuyệt vời của nó, nó không phải là một thay thế cho jedi, trên thực tế, nó có jedi như là một phụ thuộc cho hoàn thành python.
Nguồn
2013-11-11 01:27:32
Vui lòng đăng 'đặt omnifunc' và': messages' –
có thể có liên quan: http://stackoverflow.com/questions/2084875/vims-omnicompletion-with-python-just-doesnt-work. Trong ngắn hạn, kiểm tra những gì ': py print (sys.path)' hiển thị. – Yosh