python - 使用 :py OR :py3 in vim? 的兼容方式

标签 python vim python-3.x ultisnips

在我的 .vimrc 和我的 vim 插件 UltiSnips 中,我有很多看起来像那样的代码

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

现在,我想检查 python3 是否通过 has("python3") 编译到 Vim 中,然后使用 :py3 而不是 :py。保持 python 代码在 python 2 和 3 之间兼容不是问题 - 问题是告诉 vim 使用 :py3 如果可用,否则使用 :py。

有人有好主意吗?

最佳答案

您可以利用 vim 中用户定义的命令只是简单的 place-in-patter-and-eval 语句这一事实,并编写:

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

然后您可以使用 :Py 以与您经常使用 :py:py3 相同的方式运行 python 命令。

关于python - 使用 :py OR :py3 in vim? 的兼容方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8805247/

相关文章:

python - django.urls.exceptions.NoReverseMatch : Reverse for 'user-detail' with no arguments not found

unix - vim folding - 如何复制展开的线条

python - 如何使用 py2neo 计算与节点的关系(一种类型)

python - 检查返回值是否为 None

python - 值错误 : day is out of range for month datetime

python - 具有虚拟环境的 Django

python - 使用 pytest.ini 进行记录。如何附加到文件?

python - 我对 python while 循环中的打印感到困惑

vim - 在 vim 中 shift+w (W) 不起作用。它像w一样向前移动。我如何解决它?

vim - 如果没有Makefile,则将vimrc makeprg设置为自定义脚本