是否可以将外部命令的输出传递给`:tabnew`?

时间:2018-01-26 19:41:18

标签: vim

我正在尝试使用shell函数生成文件名并将其传递给tabnew

我如何获得以下工作等效,其中echo foo可能会被任意外部命令替换?

tabnew $(!echo foo)

要清楚,所需的结果是评估shell命令,并将其输出传递给tabnew。在上面的示例中,命令应评估为tabnew foo

1 个答案:

答案 0 :(得分:5)

您可以使用executesystem来制作tabnew命令。

以下是您可以修改的功能,可能会粘贴在.vimrc

function! TabNewFoo()
  execute "tabnew ".system('echo "foo"')
endfunction

调用:

:call TabNewFoo()

或者,更通用的形式:

function! TabNewFoo(command)
  execute "tabnew ".system(a:command)
endfunction

调用:

:call TabNewFoo("echo 'foo'")