我如何遍历快速修复列表中的缓冲区:copen
并用它进行一些操作。
或者任何将这些文件放入 args 列表的替代方法,我可以使用 argsdo。
答案1
您可以自己编写循环:
for file in ['foo.txt', 'bar.txt']
execute 'edit' fnameescape(file)
" Your processing here.
endfor
或者,如果您已经在 Vim 中加载了所有文件,则:bufdo
根据缓冲区(或带 的缓冲区编号bufnr('')
)是否在列表中,有条件地使用和执行命令:
bufdo if index(['foo.txt', 'bar.txt'], bufname('')) != -1) | execute ... | endif
编辑:现在我明白您想要迭代中的文件快速修复列表(您在执行操作时看到的那个:copen
,您可以通过获取它们的缓冲区编号map(getqflist(), 'v:val.bufnr')
。不过,仍然需要避免多次处理同一缓冲区。
答案2
我找到了一个完全适合我需要的 vim 插件,它是vim-qargs。背后的想法与@Ingo 几乎相同。