如何将shell命令输出导入vim函数?

如何将shell命令输出导入vim函数?,vim,Vim,我正在使用 我正在尝试建立一个使用MakeGreen插件的测试策略 命令是:TestFile | MakeGreen(),它可以工作,但问题是 function! MakeGreenStrategy(cmd) abort execute '!'.a:cmd " this is a shell command which I would like to pipe into a vim function called MakeGreen() endfunction 那么,将shell命令的输出

我正在使用 我正在尝试建立一个使用MakeGreen插件的测试策略

命令是
:TestFile | MakeGreen()
,它可以工作,但问题是

function! MakeGreenStrategy(cmd) abort
  execute '!'.a:cmd " this is a shell command which I would like to pipe into a vim function called MakeGreen()
endfunction
那么,将shell命令的输出管道化到vim函数中的正确方法是什么呢?就像第一个命令一样,但它是在vimscript函数中

注意:您需要修剪尾随的换行符。请参见您正在寻找的


注意:您需要修剪尾随的换行符。请参阅

谢谢,但是系统不允许我调用TestFile,它是一个vim函数(该函数调用的是生成shell命令的函数)。该shell命令的输出是我试图通过管道再次返回到vim函数的内容,因此,这可以从vim的ex模式
:TestFile | MakeGreen
中执行。您不能在vim命令行中使用条形(
:h bar
)来管道命令。您必须考虑第一个vim用户命令将解释的另一个字符。否则,您可以做的是
:echo somevimfunction(systemlist('external command'))
。谢谢,但是
system
不允许我调用作为vim函数的TestFile(该函数调用的是生成shell命令的函数)。该shell命令的输出是我试图通过管道再次返回到vim函数的内容,因此,这可以从vim的ex模式
:TestFile | MakeGreen
中执行。您不能在vim命令行中使用条形(
:h bar
)来管道命令。您必须考虑第一个vim用户命令将解释的另一个字符。否则,您可以执行
:echo somevimfunction(systemlist('external command'))