Этот фрагмент кода может определить, какая версия Python мы использование и переключиться на него (Python означает, что эта версия установлена).
if has('python')
command! -nargs=1 Python python <args>
elseif has('python3')
command! -nargs=1 Python python3 <args>
else
echo "Error: Requires Vim compiled with +python or +python3"
finish
endif
Чтобы загрузить код питона, мы сначала выяснить его местонахождение (здесь под одной и той же директории, что и Вим Script):
execute "Python import sys"
execute "Python sys.path.append(r'" . expand("<sfile>:p:h") . "')"
Затем проверьте, если модуль питона доступен. Если нет, то не будет перегружен:
Python << EOF
if 'yourModuleName' not in sys.modules:
import yourModuleName
else:
import imp
# Reload python module to avoid errors when updating plugin
yourModuleName = imp.reload(yourModuleName)
EOF
Два способа назвать:
1.
" call the whole module
execute "Python yourModuleName"
" call a function from that module
execute "Python yourModuleName.aMethod()"
2.
" Call a method using map
vnoremap <leader> c :Python yourModuleName.aMethod()<cr>
" Call a module or method using Vim function
vnoremap <leader> c :<c-u> <SID>yourFunctionName(visualmode())<cr>
function! s:YourFunctionName(someName)
Python YourFunctionName.aMethod(a:someName)
Python YourFunctionName
endfunction
Короткий ответ: нет. Более длинный ответ: вы можете абстрагировать некоторые из них, проверяя, какая версия Python доступна, установив переменную say 'py' на' python' или 'python3', а затем вызывая это с помощью' exec py. 'print ("EAT ME")'. Да, я никогда не говорил, что это хорошо. – lcd047