我刚刚开始围绕vim + python脚本(没有使用本机vim脚本的经验)。
如何打开一个新窗口以包含后台进程中的stdout?
目前,在阅读了一些:help python之后,我看到的唯一选择是:
cmd = ":bel new"
vim.command(cmd)
答案 0 :(得分:3)
由于vim.command
可以执行大多数(如果不是全部?)ex命令,您只需从其中调用:new +read!ls
即可。
:new
拆分当前窗口并将新的(空的,无名称)缓冲区放入上部窗口。它需要一个参数+[cmd]
,我们用它来执行read!cmd
,它会在爆炸后读取cmd的stdout。请注意,您需要使用\
总而言之,你得到vim.command("new +read!cmd")
:python vim.command("new +read!ls")
将当前目录的内容读入n cichew,水平分割窗口中的新缓冲区。
如果你想处理特殊字符的转义,可以考虑使用python的re.escape():
:py import re;vim.command("new +read!"+re.escape("ls Dire*"))
对大多数情况来说应该足够了。如有疑问,请检查其文档并将其与shell的文档进行比较。