我需要根据一些外部命令的输出构建一个quickfix列表.但该命令只给我文件名和行号,如:
foo.txt:10 bar.txt:20
foo.txt:10: this is some line from foofile bar.txt:20: hello world,we're a line from barfile
可以这样做吗?
理想情况下,我希望这是跨平台的,所以可能在纯Vimscript中,没有调用像sed或类似的外部命令?
模拟
我可以使用以下函数模拟我当前的行为:
function! MyFunc() let mylist = ["foo.txt:10:...","bar.txt:20:..."] cgetexpr mylist copen endfunction call MyFunc()
解决方法
嗯,根据
a partially related question on comp.editors和
:help readfile
,我会说下面可能有用,无论多么浪费:
function! MyFunc() let mylist = ["foo.txt:10:...","bar.txt:20:..."] let result = [] for elem in mylist let temp = split(elem,":") let line = elem . ":" . readfile(temp[0],"",temp[1])[temp[1]-1] call add(result,line) endfor cgetexpr line copen endfunction call MyFunc()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。