29

如何设置键盘快捷键以在 vim 中切换合成错误位置列表面板。

:Errors- 显示位置面板

:lclose- 隐藏位置面板

如果有办法检查 Location List Panel 的可见性,我对 VimScript 还是很陌生。这应该很容易做到。

4

2 回答 2

25

我不知道如何区分 * quickfix 和位置列表,但我建议不要检查是否显示位置列表,而是关闭它并检查显示的窗口数量是否已更改:

function! ToggleErrors()
    let old_last_winnr = winnr('$')
    lclose
    if old_last_winnr == winnr('$')
        " Nothing was closed, open syntastic error location panel
        Errors
    endif
endfunction

* 如果您对将尝试的解决方案lclose是否有效,请检查使用 buftype quickfix 显示的缓冲区:

function! ToggleErrors()
    if empty(filter(tabpagebuflist(), 'getbufvar(v:val, "&buftype") is# "quickfix"'))
         " No location/quickfix list shown, open syntastic error location panel
         Errors
    else
        lclose
    endif
endfunction

. 请注意,lclose不会关闭 quickfix 列表。

要使用 Ctrl-e 切换错误面板,您可以使用以下映射

nnoremap <silent> <C-e> :<C-u>call ToggleErrors()<CR>
于 2013-07-07T19:58:14.067 回答
8

根据Syntastic 帮助,关闭 Syntastic 错误窗口的命令是:

:SyntasticReset
于 2016-10-14T09:41:09.577 回答