2011-11-09 14 views
5

Domanda semplice (spero). Mi sta facendo impazzire. Sto cercando di creare un semplice script nel mio vimrc alla mappa:Rilevare se il buffer di quickfix esiste in VIM

<Leader>e

per aprire la finestra quickfix. Voglio anche che la combinazione di tasti per chiudere la finestra di aggiornamento rapido se è attualmente aperta. Il problema è che il comando bufexists sembra saltare i buffer di quickfix. Potete darmi qualche consiglio su come rilevare se è già aperta una finestra di quickfix?

risposta

6

Il comando :cwindow potrebbe essere quello che stai cercando. Dalla aiuto:

      *:cw* *:cwindow* 
:cw[indow] [height] Open the quickfix window when there are recognized 
        errors. If the window is already open and there are 
        no recognized errors, close the window. 

Tuttavia, se si desidera chiudere la finestra quickfix anche se ci sono ancora errori, quindi controllare this Vim Tip, che fornisce il seguente frammento:

command -bang -nargs=? QFix call QFixToggle(<bang>0) 
function! QFixToggle(forced) 
    if exists("g:qfix_win") && a:forced == 0 
    cclose 
    unlet g:qfix_win 
    else 
    copen 10 
    let g:qfix_win = bufnr("$") 
    endif 
endfunction 
+0

Perfetto! Grazie mille! – splodingsocks