
Quickfix リストのバッファを繰り返して: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のアイデアとほぼ同じです。