在Vim嵌入式python脚本中打开一个新窗口

时间:2010-08-23 11:09:59

标签: python scripting vim

我刚刚开始围绕vim + python脚本(没有使用本机vim脚本的经验)。

如何打开一个新窗口以包含后台进程中的stdout?

目前,在阅读了一些:help python之后,我看到的唯一选择是:

cmd = ":bel new"
vim.command(cmd) 

1 个答案:

答案 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的文档进行比较。