Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim打开文件由外部脚本确定_Vim - Fatal编程技术网

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

Vim打开文件由外部脚本确定,vim,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 '"

我的一个函数中有一行

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
但似乎都不管用


我是否遗漏了一些明显的内容?

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

let path=system("myScript ... ")
let path=substitute(path,"\n","","g")
exec "edit" path
请注意,删除错误的换行符可能需要中间的
substitute
命令。如果没有必要,不要担心。当然,您可以使用
split
vsplit
等来满足您的需要,而不是
edit