Pregunta

I utilizar vim para la codificación y para el pitón de codificación en particular. A menudo quiero ejecutar el búfer en uso con intérprete de Python. (Por ejemplo, para unittests de ejecución), por lo general lo hago con :!python % <Enter>

Esta scenatio trabajará funciona bien con el pitón mundial, pero quiero correr virtualenv pitón en su lugar. ¿Cómo activo virtualenv dentro de vim? ¿Es posible cambiar virtualenv en el tiempo de ejecución?

Estoy usando MacVim

¿Fue útil?

Solución

Esto es lo que yo uso (lo siento el resaltado es chiflado).

" 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 es necesario tener MacVim compilado con el pitón que está utilizando para el virtualenv, por ejemplo, si ha descargado desde Python 2.7 Python.org se debería 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!

EDIT: Sólo una nota de atribución: Una gran parte del trabajo de investigación, que entró en la redacción de este cancioncilla hecho por este blogger , y se merece parte del crédito.

Otros consejos

Active su virtualenv antes de iniciar vim. Obtendrá automáticamente la instancia correspondiente intérprete.

También hay un plugin en github vim:

https://github.com/jmcantrell/vim-virtualenv

Yo no lo he probado, pero parece que para resolver la cuestión también.

este tema realmente me molestó durante mucho tiempo hasta que yo utilizo el plugin de vim-Conda. Sólo tiene que añadir Plugin 'cjrh / vim-Conda' en su ~ / .vimrc y funcionará. También puede ver las instrucciones detalladas https://github.com/cjrh/vim-conda .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top