Vim - 循环遍历 cop 中的文件

Vim - 循环遍历 cop 中的文件

我如何遍历快速修复列表中的缓冲区: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 几乎相同。

相关内容