Otro enfoque, dependiendo de su caso de uso, sería usar vimgrep y sus resultados en quickfix . Puede hacer lo siguiente:
:vimgrep pattern %buscará el archivo actual y lo llevará al primer resultado de búsqueda. Más importante aún, también coloca los resultados en la "lista de arreglos rápidos".
:copenluego abrirá la lista de arreglos rápidos en una ventana separada de arreglos rápidos. Entonces tendrá una ventana separada con todas las líneas de su último vimgrep. Dentro de la ventana de corrección rápida, puede presionar Enter o hacer doble clic en una línea para saltar a la línea correspondiente en su archivo original.
:colderle permitirá volver a las listas de correcciones rápidas más antiguas (resultados de vimgrep más antiguos). Y :cneweravanza a resultados de búsqueda más nuevos.
Tenga en cuenta que la lista de correcciones rápidas también se actualiza cuando se ejecuta :make(por eso se llama corrección rápida para corregir errores). Debido a esto, también existe una alternativa a la lista de arreglos rápidos llamada "lista de ubicaciones". Para usarlo en lugar de utilizar :lvimgrep, a continuación, utilizar comandos l-prefijado en lugar de comandos c-prefijo - :lopen, :lolder, :lnewer.
Por supuesto, hay mucho más que puede hacer. Consulte :help quickfixpara obtener más información.
PD: Dijiste que no querías un enfoque que borra líneas y luego las deshace. Pero ya que marcó g/ERRORcomo la respuesta, pensé en señalar que una forma rápida y sucia es hacerlo g!/ERROR/d. A continuación, puede deshacerlo fácilmente usando u. También para su información, puede hacer :set hlsearchpara resaltar patrones que coincidan con :gcomandos.