Вот что я использую (извините, подсветка шустрая).
" Function to activate a virtualenv in the embedded interpreter for
" omnicomplete and other things like that.
function LoadVirtualEnv(path)
let activate_this = a:path . '/bin/activate_this.py'
if getftype(a:path) == "dir" && filereadable(activate_this)
python << EOF
import vim
activate_this = vim.eval('l:activate_this')
execfile(activate_this, dict(__file__=activate_this))
EOF
endif
endfunction
" Load up a 'stable' virtualenv if one exists in ~/.virtualenv
let defaultvirtualenv = $HOME . "/.virtualenvs/stable"
" Only attempt to load this virtualenv if the defaultvirtualenv
" actually exists, and we aren't running with a virtualenv active.
if has("python")
if empty($VIRTUAL_ENV) && getftype(defaultvirtualenv) == "dir"
call LoadVirtualEnv(defaultvirtualenv)
endif
endif
Обратите внимание, что вам нужно скомпилировать MacVim для Python, который вы используете для virtualenv, например, если вы загрузили Python 2.7 из Python.org вам следует перекомпилировать MacVim, используя --with-python-config-dir=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
в качестве аргумента для ./configure
.
Надеюсь, что это поможет!
РЕДАКТИРОВАТЬ: Только одно примечание об атрибуции: многоИз детективной работы, которая пошла на написание этой маленькой заметки, справился этот блогер , и он заслуживает некоторой похвалы.