在vim中设置python virtualenv

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在vim中设置python virtualenv相关的知识,希望对你有一定的参考价值。

我使用vim进行编码和特别是python编码。我经常想用python解释器执行当前缓冲区。 (例如运行unittests),通常我用:!python % <Enter>做这个

这个scenatio可以正常工作与全局python,但我想运行virtualenv python而不是。如何在vim中启用virtualenv?是否可以在运行时切换virtualenv?

我正在使用macvim

答案

这是我使用的(抱歉突出显示是棘手的)。

" 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

请注意,您需要针对您用于virtualenv的Python编译MacVim,例如如果您从Python.org下载了Python 2.7,则应使用--with-python-config-dir=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config作为./configure的参数重新编译MacVim。

希望有所帮助!

编辑:只有一个归属说明:很多编写这个小曲的侦探工作是由this blogger完成的,他值得一些功劳。

另一答案

在启动vim之前激活你的virtualenv。您将自动获得相应的解释器实例。

另一答案

github上还有一个vim插件:

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

我没试过,但它似乎也解决了这个问题。

另一答案

这个问题实际上困扰了我很长一段时间,直到我使用vim-conda的插件。只需在〜/ .vimrc中添加插件'cjrh / vim-conda'即可。您还可以查看详细说明https://github.com/cjrh/vim-conda

以上是关于在vim中设置python virtualenv的主要内容,如果未能解决你的问题,请参考以下文章

在 3.5.3 virtualenv 中运行时,Vim 中的 Python 错误

Linux中设置vim自动在运算符号两边加上空格

如何在 vim 中设置默认寄存器?

在vim中设置tab缩进为4个字符

在vim中设置tab缩进为4个字符

使用自动成对关闭时如何在 Vim 中设置自动插入新行和缩进