質問

私の中で .vimrc そして私のVIMプラグインultisnips私はそのように見える多くのコードを持っています

:py << EOF
print("Hi")
EOF

ここで、Python3がVimにコンパイルされているかどうかを確認したい has("python3") そして、使用します :py3 それ以外の :py. 。 Python 2と3の間でPythonコードを互換性のあるものに保つことは問題ではありません。問題は、VIMに使用できるようにVIMに指示することです。

誰かが良い考えを持っていますか?

役に立ちましたか?

解決

VIMのユーザー定義コマンドがパターに並んでいるだけであるという事実を利用することができます。

if has("python3")
    command! -nargs=1 Py py3 <args>
else
    command! -nargs=1 Py py <args>
endif

その後、使用できます :Py Pythonコマンドを実行するには、定期的に使用するのと同じ方法でコマンド :py また :py3.

他のヒント

Python3またはPythonを1回だけチェックしてから変数を設定することで、これを醜い方法で解決しました。

let g:_uspy=":py "   or ":py3 "

そして、<< EOF構文を船外に投げ、代わりにPythonの各行を介して電話をかけます

exec g:_uspy "print('Hello')"

それはokaishに働いているようです。このgit blobの完全なソリューションを参照してください:

https://github.com/sirver/ultisnips/blob/da49b4b7c4669bc462a98c9abc71b42d43d408bc/plugin/ultisnips.vim

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