2013-07-07 15 views
24

Jak ustawić skrót klawiaturowy, aby przełączać panel listy lokalizacji błędów Syntastic w vim.Panel Zmień lokalizację błędu w syntastycznym

:Errors - Pokazuje położenie panelu

:lclose - Ukrywa Lokalizacja panelu

jestem bardzo nowy VimScript, jeśli nie byłoby sposobem na widoczności wyboru z listy Położenie Panelu. To powinno być dość łatwe do zrobienia.

Odpowiedz

21

nie wiem jak odróżnić * quickfix i lokalizacji list, ale zamiast sprawdzania, czy wyświetlana jest lista lokalizacja Proponuję po prostu zamykając go i sprawdzanie czy liczba okien pokazanych zmieniła:

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

* jeśli jesteś w porządku z roztworem, który będzie próbował lclose jeśli jest aktywna kontrola dla bufora wyświetlanego z 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 

. Zauważ, że lclose nie zamknie listy quickfix.

Aby przełączyć Panel błąd z CTRL-E można wykorzystać następujące mapowanie

nnoremap <silent> <C-e> :<C-u>call ToggleErrors()<CR> 
+0

Jak można zobaczyć panel quickfix? Nie jestem pewien, czy doktorzy o tym wspominają. –

+1

@AkshayAurora ': vimgrep',': grep', ': make' i tak dalej na wszystkich listach szybkiego użycia. ': copen' wyświetli to. Dokumenty wspominają o tym, ': vimgrep' jest przykładem w drugim akapicie': h quickfix'. Istnieją jednak odpowiedniki dla wszystkich tych poleceń: ': lvimgrep',': lgrep', ': lmake' i tak dalej. – ZyX

+0

Dzięki. Jednak podczas używania 'gvim -p' do edycji wielu plików, za każdym razem, gdy się wyprowadzam i powracam do zakładki, lista lokalizacji pojawia się ponownie. Ani jego status widoczności, ani wysokość nie są stałe. W każdym razie, ustawiłem 'g: syntastic_auto_loc_list' na' 0', a teraz aktywuję go ręcznie, więc nie mam nic przeciwko. –