2015-03-24 13 views
5

Ho installato Syntastic da GitHub e sto cercando di usare Syntastic per verificare gli errori di sintassi perl (e la pianificazione da usare per Python in breve tempo). Quando uso ': quit' o ': q', si chiude solo la finestra del file originale. La finestra di errore non si chiude. Qui di seguito è snip dal mio file Vimrc:Syntastic errore finestra di chiusura e finestra file originale

execute pathogen#infect() 
set statusline+=%#warningmsg# 
set statusline+=%{SyntasticStatuslineFlag()} 
set statusline+=%* 
let g:syntastic_perl_checkers = ['perl'] 
let g:syntastic_python_checkers = ['pylint'] 
let g:syntastic_enable_perl_checker = 1 
let g:syntastic_always_populate_loc_list = 1 
let g:syntastic_auto_loc_list = 1 
let g:syntastic_check_on_open = 1 

Dal momento che sono molto nuovo per lo scripting vim, vorrei sapere come chiudere entrambe le finestre, finestra di errore e la finestra del file originale, quando uso ': quit 'o': q 'mentre la finestra del file originale è attiva.

+0

': q' chiude la finestra corrente, non Vim. – romainl

risposta

4

Questo è il normale comportamento di Vim; non ha nulla a che fare con Syntastic. La quickfix o elenco di località windows può contenere riferimenti ad altri file, quindi non è sicuro di voler lasciare completamente Vim quando si esce dalla finestra di origine.

La soluzione più semplice è utilizzare :qa (chiudere tutto) anziché :q. Poiché la finestra di errore non contiene modifiche non verificate, questa operazione è sicura e non richiede una conferma.

Se siete infastiditi dal dover pensare a questo, è possibile utilizzare le funzionalità di scripting di Vim a cambiare il suo comportamento:

:autocmd WinEnter * if &buftype ==# 'quickfix' && winnr('$') == 1 | quit | endif 

Questo controlli ogni cambio di finestra se c'è solo una finestra di sinistra, e se questo uno è un elenco quickfix/posizione, esce da Vim.

+0

In realtà, ': q' nella finestra principale __does__ chiude entrambe le finestre, questa è una funzionalità di syntastic. Lo stesso non funziona nella finestra di errore perché non è sicuro. ': q' nella finestra di errore dovrebbe comunque chiudere la finestra di errore; il fatto che non lo faccia, è un bug. :) Presto un patch presto. – lcd047

+0

@ lcd047 No ..... il ': q' nella finestra principale ** non ** chiude entrambe le finestre. La finestra di errore rimane ancora aperta. Inoltre, ': q' nella finestra di errore ** non ** chiude nulla. Entrambe le finestre rimangono aperte. Il comportamento dipende dalla specifica versione di Vim? –

+0

@Nilesh Bhave: Si suppone che si comportino come ho descritto, a seconda della versione sintattica, dell'interazione con altri plugin e dell'assenza di bachi. Purtroppo, il bug che ho citato sopra non è così facile da risolvere come ho pensato prima. Se hai altri problemi da segnalare, ti preghiamo di farlo all'indirizzo [issue tracker] (https://github.com/scrooloose/syntastic/issues). – lcd047

3

provare il seguente comando:

:lclose

Problemi correlati