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의 아이디어와 거의 동일합니다.