Vim打开文件由外部脚本确定

时间:2011-08-08 14:57:33

标签: vim

我的一个功能中有一行

silent! exec "r!sh myScript '" . a.1 "'

这会将myScript的输出打印到当前缓冲区。

myScript输出单个文件名。我不打算将文件名打印到缓冲区,而是打开该文件。

我尝试过像

这样的事情
silent! exec "open!sh myScript '" . a.1 "'
silent! exec "new!sh myScript '" . a.1 "'
let l:file = silent! exec "sh myScript '" . a.1 "'
    new l:file

但似乎都没有效果。

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:2)

我建议以这种方式使用system()函数:

let path=system("myScript ... ")
let path=substitute(path,"\n","","g")
exec "edit" path

请注意,可能需要使用中间substitute命令来删除错误的换行符。如果没有必要,不要担心。当然,您可以使用editsplit等来代替vsplit,而不是{{1}}。