使用:py或:py3在vim中的兼容方法?
-
26-10-2019 - |
题
在我的 .vimrc
和我的VIM插件Ultisnips,我有很多看起来像这样的代码
:py << EOF
print("Hi")
EOF
现在,我想检查是否将Python3编译到VIM中 has("python3")
然后使用 :py3
代替 :py
. 。将Python代码保持在Python 2和3之间的兼容不是问题 - 问题是告诉VIM使用:PY3如果可用,则:py否则。
有人一个好主意吗?
解决方案
您可以利用一个事实,即VIM中的用户定义的命令仅仅是一个位置和评估语句,并写下:
if has("python3")
command! -nargs=1 Py py3 <args>
else
command! -nargs=1 Py py <args>
endif
那你可以使用 :Py
以与定期使用的方式运行python命令 :py
或者 :py3
.
其他提示
我现在只检查一次python3或python,以一种丑陋的方式解决了这个问题,然后设置一个变量
let g:_uspy=":py " or ":py3 "
然后将<< eof语法在舷外上抛出,然后通过
exec g:_uspy "print('Hello')"
这似乎有效。请参阅此Git Blob中的完整解决方案:
不隶属于 StackOverflow