在 Vim 中捕获 shell 命令的输出

Jos*_*dah 3 vim

我正在尝试编写一个函数,该函数将接受 gem 名称并根据 Bundler 显示的内容在该 gem 的目录中运行 Ctrl-P。现在我陷入了如何捕获 shell 命令的输出的困境。

到目前为止我有:

function! GemCtrlP(gem_name)
   execute '!bundle list ' . a:gem_name
endfunction
Run Code Online (Sandbox Code Playgroud)

我想保存该调用的输出bundle,然后将其通过管道传输到 CtrlP 中。我可以执行 CtrlP 部分,但我不确定如何捕获 shell 输出

有任何想法吗?

Chr*_*ndt 5

使用该:redir命令可以实现捕获任意vim命令。对于 shell 命令,通常使用该system()函数更容易。

请参阅帮助

:h :redir
:h system
Run Code Online (Sandbox Code Playgroud)

帮助中应该有足够的示例(或者查看一些插件)。