Dieser Ausschnitt bestimmen könnte, die Python-Version wir verwende und Wechseln Sie dazu (Python steht für diese Version installiert).
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
den Python-Code laden, wir (hier unter dem gleichen Verzeichnis wie das Vim-Script) zuerst seine Lage herauszufinden:
execute "Python import sys"
execute "Python sys.path.append(r'" . expand("<sfile>:p:h") . "')"
Dann prüfen, ob der Python-Modul zur Verfügung. Falls nicht, legen Sie es erneut:
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
zwei Möglichkeiten, es zu nennen:
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
Die kurze Antwort ist nein. Die längere Antwort ist, dass Sie etwas abstrahieren können, indem Sie testen, welche Version von Python verfügbar ist, indem Sie eine Variable say 'py' auf' python' oder 'python3' setzen und dann diese mit' exec py aufrufen. 'print ("ESSEN MICH")' '. Ja, ich habe nie gesagt, dass es nett ist. – lcd047