Un altro approccio a seconda del tuo caso d'uso sarebbe usare vimgrep e i suoi risultati in quickfix . Puoi fare quanto segue:
:vimgrep pattern %
cercherà il file corrente e ti porterà al primo risultato della ricerca. Ancora più importante, mette anche i risultati nella "lista di correzione rapida".
:copen
aprirà quindi l'elenco di quickfix in una finestra quickfix separata. Quindi avrai una finestra separata con tutte le righe dal tuo ultimo vimgrep. All'interno della finestra quickfix puoi quindi premere Invio o fare doppio clic su una riga per passare alla riga corrispondente nel file originale.
:colder
ti consentirà di tornare agli elenchi di correzione rapida più vecchi (vecchi risultati di vimgrep). E :cnewer
passa ai risultati di ricerca più recenti.
Nota che l'elenco di correzione rapida viene aggiornato anche durante l'esecuzione :make
(motivo per cui si chiama correzione rapida per correggere gli errori). Per questo motivo c'è anche un'alternativa all'elenco di quickfix chiamato "elenco di posizioni". Per usarlo, invece di utilizzare :lvimgrep
, quindi utilizzare i comandi l-prefisso piuttosto che comandi c-prefisso - :lopen
, :lolder
, :lnewer
.
Ovviamente c'è molto di più che puoi fare. Vedi :help quickfix
per maggiori informazioni.
PS, hai detto che non volevi un approccio che elimina le righe e poi le annulla. Ma dato che hai segnato g/ERROR
come risposta ho pensato di farti notare che un modo veloce e sporco è quello di fare g!/ERROR/d
. Puoi quindi annullarlo facilmente usando u
. Inoltre, puoi fare :set hlsearch
per evidenziare i modelli abbinati ai :g
comandi.