我正在尝试编写一个函数,该函数将接受 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 输出
有任何想法吗?
使用该:redir
命令可以实现捕获任意vim命令。对于 shell 命令,通常使用该system()
函数更容易。
请参阅帮助
:h :redir
:h system
Run Code Online (Sandbox Code Playgroud)
帮助中应该有足够的示例(或者查看一些插件)。