Question

J'utilise vim pour le codage et le codage python en particulier. Souvent, je veux exécuter le tampon en cours avec l'interpréteur python. (Par exemple unittests d'exécution), d'habitude je le fais avec :!python % <Enter>

Cette scenatio travaillera fonctionne très bien avec python global, mais je veux courir virtualenv python à la place. Comment puis-je activer virtualenv au sein vim? Est-il possible de changer virtualenv sur le moteur d'exécution?

J'utilise MacVim

Était-ce utile?

La solution

Voici ce que j'utilise (désolé la mise en évidence est timbré).

" 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

Notez que vous devez avoir MacVim compilé le Python que vous utilisez pour la virtualenv, par exemple si vous avez téléchargé Python 2.7 de Python.org vous devez recompiler MacVim en utilisant --with-python-config-dir=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config comme argument pour ./configure.

L'espoir qui aide!

EDIT: Juste une note d'attribution: Une grande partie du travail de détective qui est entré en écrivant cette petite chansonnette a été fait par ce blogueur , et il mérite une partie du crédit.

Autres conseils

Activer votre virtualenv avant de commencer vim. Vous obtiendrez automatiquement l'instance de l'interpréteur correspondant.

Il y a aussi un plugin vim sur github:

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

Je n'ai pas essayé, mais il semble résoudre la question ainsi.

cette question me fait préoccupe depuis longtemps jusqu'à ce que j'utilise le plug-in de vim-Conda. Il suffit d'ajouter Plugin 'cjrh / vim-Conda' dans votre ~ / .vimrc et cela fonctionnera. Vous pouvez également consulter les instructions détaillées https://github.com/cjrh/vim-conda .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top