Ответ 1
Я не знаю, как различать * 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:
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
не будет закрывать список быстрого удаления.
Чтобы переключить панель ошибок с помощью Ctrl-e, вы можете использовать следующее сопоставление
nnoremap <silent> <C-e> :<C-u>call ToggleErrors()<CR>