我使用vim进行编码,特别是用于python编码。通常我想用python解释器执行当前的缓冲区。 (例如运行unittests),通常我这样做:!python % <Enter>
在vim中设置python virtualenv
这scenatio将工作正常与全球python,但我想运行virtualenv python代替。如何在vim中启用virtualenv?是否有可能在运行时切换virtualenv?
我使用的是macvim
我使用vim进行编码,特别是用于python编码。通常我想用python解释器执行当前的缓冲区。 (例如运行unittests),通常我这样做:!python % <Enter>
在vim中设置python virtualenv
这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
请注意,您需要拥有的MacVim编译对Python中,你正在使用的virtualenv中,例如如果您从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。您将自动获得相应的解释器实例。
我使用的是MacVim,我从Dock开始它,所以它不是一个很好的选择......据我所知,激活virtualenv完全是关于修改PATH,PYTHONHOME和PYTHONPATH环境变量,也许一些其他也一样。我不介意将virtualenv的'script'移植到vim,我只是想知道是否有现有的解决方案。 – 2010-10-07 12:35:42
我发现这是行不通的,如果virtualenv python是与vim编译的版本不同的版本(例如2 vs 3) – hwjp 2016-06-21 13:51:48
对不起,对我不适用OSX + MacVim – cmcginty 2017-05-10 05:53:10
我试过这个,但它似乎不适用于Mac OSX 10.8(山狮) - 一些其他潜在的问题也许存在 – Lionel 2013-06-25 02:53:59
我有问题让它与MacVim一起工作。 – Chris 2014-10-29 20:13:57
@Chris:这很可能是因为[此问题](http://stackoverflow.com/questions/9853584/how-to-use-correct-ruby-in-vim-how-to-modify-path-in -vim/12146694#12146694)。 – Nolsto 2015-03-06 04:09:31
这个问题实际上困扰了我很长一段时间,直到我使用vim-conda的插件。只需在〜/ .vimrc中添加插件'cjrh/vim-conda'即可。您还可以查看详细说明https://github.com/cjrh/vim-conda。
哇,很酷,这是什么我在寻找,非常感谢!我不知道virtualenv创建这个activate_this.py – 2010-10-25 19:27:54
嗨dwf,你能看看我的问题在这里看看为什么我的输出是奇怪的? http://stackoverflow.com/questions/17288843/macvim-uses-wrong-python-virtualenv – Lionel 2013-06-25 03:49:30