質問

特にコーディングとPythonコーディングにはVIMを使用しています。多くの場合、Pythonインタープリターで現在のバッファーを実行したいと考えています。 (たとえば、Unittestsを実行するために)、通常私はこれを行います :!python % <Enter>

このシナティオは、グローバルな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をコンパイルする必要があることに注意してください。 --with-python-config-dir=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config の議論として ./configure.

それが役立つことを願っています!

編集: 帰属の1つのメモ:この小さなDittyを書くことにかかった探偵の仕事の多くはによって行われました このブロガー, 、そして彼は信用の一部に値します。

他のヒント

VIMを開始する前に、Virtualenvをアクティブにします。対応する通訳インスタンスを自動的に取得します。

GitHubにはVIMプラグインもあります。

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

私はそれを試していませんが、それも質問を解決しているようです。

この問題は、Vim-Condaのプラグインを使用するまで、実際に長い間私を悩ませました。 〜/.vimrcにプラグイン 'cjrh/vim-conda'を追加するだけで動作します。詳細な指示も見ることができます https://github.com/cjrh/vim-conda.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top