python - usar - vim super
Establecer python virtualenv en vim (3)
Utilizo vim para la codificación y para la codificación python en particular. A menudo quiero ejecutar el búfer actual con el intérprete de Python. (por ejemplo, para ejecutar unittests), generalmente hago esto con :!python % <Enter>
Esta escena funcionará bien con python global, pero quiero ejecutar virtualenv python en su lugar. ¿Cómo habilito virtualenv dentro de vim? ¿Es posible cambiar virtualenv en el tiempo de ejecución?
Estoy usando macvim
Active su virtualenv antes de iniciar vim. Obtendrá automáticamente la instancia de intérprete correspondiente.
Esto es lo que uso (lo siento, el resaltado es desatinado).
" 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
Tenga en cuenta que necesita tener MacVim compilado contra el Python que está utilizando para el virtualenv, por ejemplo, si descargó Python 2.7 desde Python.org debe recompilar MacVim usando --with-python-config-dir=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
como argumento para ./configure
.
¡Espero que ayude!
EDITAR: Solo una nota de atribución: Gran parte del trabajo de detective que se dedicó a escribir esta pequeña canción fue hecho por este blogger , y merece algo del mérito.
También hay un complemento vim en github:
https://github.com/jmcantrell/vim-virtualenv
No lo he intentado, pero parece resolver la pregunta también.