2009-03-19 12 views
13

Ho un avviso che non posso rimuovere facilmente dalla mia build, ogni volta che eseguo ": make" da dentro vim la quickfix mi porta ad un file di intestazione non mi interessa di. Come posso impedire a VIM di farlo e mostrarmi solo avvertimenti ed errori che mi interessano?Prevenire: fare in VIM di andare a un avviso

risposta

3

Un modo veloce e sporco sarebbe scrivere un semplice script di shell che esegua il tuo make e svuota gli avvisi che non vuoi vedere. Quindi devi usare questo script invece di make (Aggiungi "set makeprg = yourscript.sh" al tuo .vimrc).

7

Controllare :h 'errorformat' (alias &efm), esistono opzioni per ignorare gli avvisi finché è possibile riconoscerli con un motivo.

2

Impara da Bram stesso.

Mi ricordo vagamente che parla di questo da qualche parte nello this video.

Aggiunge un filtro per ignorare alcuni avvisi di gnome durante la compilazione di gvim.

Il video vale comunque la pena guardare.

È intorno ai 30 minuti.

+0

Il collegamento è morto. – mknaf

10

Come ha detto Luc Hermite, è possibile ignorare gli avvisi utilizzando l'opzione 'errorformat'. La regolazione di questa opzione è un po 'complicata; potrebbe essere utile controllare lo $VIMRUNTIME/compiler per alcuni esempi.

Quando si lavora con avr-gcc e C++ alcuni avvisi fastidiosi come questo

tests.cpp:492: warning: only initialized variables can be placed into program memory area 

si presenta, ed è probabile che sia frutto di una compiler fault.

Per evitare che tali avvertenze visualizzati sulla finestra quickfix ho aggiungere questo ~/.vimrc:

compiler gcc 
set errorformat^=%-G%f:%l:\ %tarning:\ only\ initialized\ varia 
      \bles\ can\ be\ placed\ into\ program\ memory\ area 

Il %-G può essere utilizzato per specificare i modelli per essere ignorati. Il ^= in set errorformat^=... è usato per anteporre il modello di allarme ignorato per 'errorformat' - utilizzando += (set errorformat+=...) sarebbe aggiungere l'opzione e non avrebbe funzionato, come 'errorformat' è un elenco di formati e il primo che corrisponde viene utilizzato, in tal modo si applicherebbe invece il modello di avvertimento "normale".

Forse potresti adattare queste impostazioni al tuo ambiente.

2

Per costruire su ciò che mMontu suggerito, aggiungendo questo al mio Vimrc ha fatto il trucco per me (ignorare tutti gli avvertimenti dal mio compilatore GCC)

set errorformat^=% - G% f:% l: \ avvertimento :% m

Problemi correlati