我的一个功能中有一行
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
但似乎都没有效果。
我错过了一些明显的东西吗?
答案 0 :(得分:2)
我建议以这种方式使用system()函数:
let path=system("myScript ... ")
let path=substitute(path,"\n","","g")
exec "edit" path
请注意,可能需要使用中间substitute
命令来删除错误的换行符。如果没有必要,不要担心。当然,您可以使用edit
或split
等来代替vsplit
,而不是{{1}}。