Câu trả lời:
:windo if &buftype == "quickfix" || &buftype == "locationlist" | lclose | endif
Điều đó sẽ thực thi lệnh: lclose trong tất cả các cửa sổ không hiển thị quickfix hoặc danh sách vị trí. Tôi không có một bộ danh sách vị trí để kiểm tra nó, vì vậy tôi đã thử nghiệm với một loại bộ đệm khác và nó đã hoạt động cho trường hợp đó.
Bạn có thể sẽ muốn làm cho nó trở thành một lệnh hoặc phím tắt trong .vimrc của bạn.
:ccl | lcl
<Leader>c
:noremap <Leader>c :ccl <bar> lcl<CR>
Tôi ánh xạ cái này tới <F11>:
nmap <F11> :windo lcl\|ccl<CR>
Về cơ bản: Trong mỗi cửa sổ, hãy chạy lcl
(đóng danh sách vị trí) và ccl
(đóng quickfix)
:windo if &buftype != "quickfix" | lclose | endif
Điều đó sẽ thực thi :lclose
lệnh trong tất cả các cửa sổ không hiển thị quickfix hoặc danh sách vị trí. Tôi không có một bộ danh sách vị trí để kiểm tra nó, vì vậy tôi đã thử nghiệm với một loại bộ đệm khác và nó đã hoạt động cho trường hợp đó.
lclose
không đóng danh sách quickfix, vì vậy điều này sẽ không hoạt động cho những người đó.