我正在从 vim 执行 python 文件,如下所述: 如何执行我在 Vi(m) 中编辑的文件
我在 Windows 和 Linux 上观察到相同的行为。为了测试,我移动了我的 .vim 以避免其他插件干扰。然后我设置:
:set makeprg=python\ %
现在,当我运行这样的示例文件(称为 mini.py)
import datetime
print "hello"
def foo1():
print "foo"
print "str: " + str(datetime.datetime.now())
print "str: " + str(datetime.datetime.now().date())
foo1()
现在当我执行
:make
"mini.py" 10L, 173C written
:!python mini.py 2>&1| tee /tmp/vew33jl/9
hello
foo
str: 2013-05-07 17:01:47.124149
str: 2013-05-07
"str: 2013-05-07 17" [New File]
(3 of 4): 47.124149
vim 会扼杀 datetime.now 输出,并使用当前日期创建一个新文件并立即显示它。
这种行为是可以预期的吗?
如果我注释掉 .now() 行(now().date() 显然不是问题),它会按预期工作,我或多或少会看到我期望的文本输出。