Python在产卵时弄乱了vim

时间:2012-06-03 09:48:18

标签: python vim subprocess

我正在尝试从python运行程序并根据其退出状态打印输出。下面的代码直接输出到我的vim屏幕(弄乱它),而不是打开带输出的shell。

enter image description here

python << EOF
import subprocess
import vim

cmd = "BAD_COMMAND"
p = subprocess.Popen(cmd, shell=True)
retcode = p.poll()
if retcode > 0:
    output_of_error = p.communicate()[0]
    vim.command("!echo show errors here")

EOF

1 个答案:

答案 0 :(得分:2)

您希望将子流程重定向到管道:

p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

communicate()将返回一个包含该进程的stdoutstderr内容的2元组。