标签: vim
我正在尝试使用shell函数生成文件名并将其传递给tabnew。
tabnew
我如何获得以下工作等效,其中echo foo可能会被任意外部命令替换?
echo foo
tabnew $(!echo foo)
要清楚,所需的结果是评估shell命令,并将其输出传递给tabnew。在上面的示例中,命令应评估为tabnew foo。
tabnew foo
答案 0 :(得分:5)
您可以使用execute和system来制作tabnew命令。
execute
system
以下是您可以修改的功能,可能会粘贴在.vimrc:
.vimrc
function! TabNewFoo() execute "tabnew ".system('echo "foo"') endfunction
调用:
:call TabNewFoo()
或者,更通用的形式:
function! TabNewFoo(command) execute "tabnew ".system(a:command) endfunction
:call TabNewFoo("echo 'foo'")