VIMでPython Virtualenvを設定します
-
28-09-2019 - |
質問
特にコーディングと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をアクティブにします。対応する通訳インスタンスを自動的に取得します。
この問題は、Vim-Condaのプラグインを使用するまで、実際に長い間私を悩ませました。 〜/.vimrcにプラグイン 'cjrh/vim-conda'を追加するだけで動作します。詳細な指示も見ることができます https://github.com/cjrh/vim-conda.