如果我使用:lopen,Vim打开quickfix窗口,如果我:lcl在窗口上使用有错误(或quickfix窗口本身),它会关闭它.
我想要做的.vimrc是创建一个打开quickfix的地图,如下所示:
nnoremap <F2> :lopen 10<CR>
Run Code Online (Sandbox Code Playgroud)
但是当我F2再次按下它时会关闭它:lcl.
有没有办法知道quickfix窗口是否打开然后执行:lcl?
在足够新的 vim 版本(getwininfo可用的地方)中,尝试:
function! ToggleQuickFix()
if empty(filter(getwininfo(), 'v:val.quickfix'))
copen
else
cclose
endif
endfunction
nnoremap <silent> <F2> :call ToggleQuickFix()<cr>
Run Code Online (Sandbox Code Playgroud)
定制,
vertical copencopen/替换cclose为lopen/ lclose,并替换v:val.quickfix为v:val.loclist.)