Переключить панель локации ошибок в синтетическом

Как настроить сочетание клавиш для переключения панели списка расположений Syntastic Error в vim.

:Errors - показывает панель местоположения

:lclose - Скрывает панель расположения

Я очень новичок в VimScript, если бы был способ проверить видимость панели списка местоположений. Это должно быть довольно легко сделать.

2 ответа

Решение

Я не знаю, как различать * быстрые исправления и списки местоположений, но вместо проверки, отображается ли список местоположений, я бы предложил просто закрыть его и проверить, изменилось ли количество отображаемых окон:

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>

Согласно справке Syntastic, команда закрыть окно Syntastic error:

:SyntasticReset
Другие вопросы по тегам