在vim中自动检测python 3文件

时间:2014-12-31 15:00:13

标签: regex python-3.x vim

我有各种使用外部命令的python插件,例如pydoc。我希望能够将所有适当的命令设置为他们的python 3对应物,这需要某种形式的python 3自动检测。我不确定这是否可以可靠地完成,因为python 2/3之间没有太多区别因素。最后,我想要一个看起来像这样的函数:

function! IsPythonThree()
    ... code for detection goes here ...
    return result
endfunction

我能看到这一切的唯一方法是通过一些正则表达式的魔法,我不知道如何使用。

1 个答案:

答案 0 :(得分:0)

Python 2和3之间存在重大差异,尤其是考虑到from __future__ import ...时。你想怎么处理这样的代码?如Python 2或3?

所以我不认为你能够写出100%万无一失的测试。

一种可能的方法是使用-3选项使用python2执行代码。这将测试2to3无法修复的不兼容性。如果找到了,那肯定是python 2代码。

另一种方法是使用python 2和3执行该文件,并检查中是否只有一个返回错误。