سؤال

يمكنني استخدام VIM للترميز ولشفير بيثون على وجه الخصوص. في كثير من الأحيان أريد تنفيذ المخزن المؤقت الحالي مع مترجم بيثون. (على سبيل المثال لتشغيل unittests) ، عادة ما أفعل هذا مع :!python % <Enter>

سيعمل هذا السيناتوريو بشكل جيد مع Python العالمي ، لكنني أريد تشغيل Virtualenv Python بدلاً من ذلك. كيف يمكنني تمكين VirtualEnv داخل VIM؟ هل من الممكن تبديل 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 2.7 من Python.org ، فيجب عليك إعادة ترجمة Macvim --with-python-config-dir=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config كحجة ل ./configure.

امل ان يساعد!

تعديل: ملاحظة واحدة فقط من الإسناد: تم القيام بالكثير من أعمال المباحث التي دخلت في كتابة هذا ditty الصغير بواسطة هذا المدون, ويستحق بعض الائتمان.

نصائح أخرى

قم بتفعيل VirtualEnv قبل بدء VIM. ستحصل تلقائيًا على مثيل المترجم المقابل.

يوجد أيضًا مكون إضافي VIM على Github:

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

لم أجربه ، لكن يبدو أنه يحل السؤال أيضًا.

لقد أزعجتني هذه المشكلة في الواقع لفترة طويلة حتى أستخدم البرنامج المساعد لـ VIM-Conda. فقط أضف المكون الإضافي "CJRH/VIM-Conda" في ~/.vimrc الخاص بك وسيعمل. يمكنك أيضًا رؤية التعليمات التفصيلية https://github.com/cjrh/vim-conda.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top