Outra abordagem, dependendo do seu caso de uso, seria usar o vimgrep e seus resultados na correção rápida . Você pode fazer o seguinte:
:vimgrep pattern %
irá pesquisar o arquivo atual e levá-lo ao primeiro resultado da pesquisa. Mais importante, também coloca os resultados na "lista de correções rápidas".
:copen
irá então abrir a lista de correção rápida em uma janela de correção rápida separada. Portanto, você terá uma janela separada com todas as linhas de seu último vimgrep. Dentro da janela de correção rápida, você pode pressionar Enter ou clicar duas vezes em uma linha para pular para a linha correspondente em seu arquivo original.
:colder
permitirá que você volte para listas de correção rápida mais antigas (resultados vimgrep mais antigos). E :cnewer
avança para resultados de pesquisa mais recentes.
Observe que a lista de correções rápidas também é atualizada durante a execução :make
(por isso é chamada de correção rápida para corrigir erros). Por causa disso, também existe uma alternativa para a lista de correções rápidas denominada "lista de locais". Para usá-lo, em vez de utilizar :lvimgrep
, em seguida, usar os comandos prefixados-l em vez de comandos c-prefixado - :lopen
, :lolder
, :lnewer
.
Há, é claro, muito mais que você pode fazer. Veja :help quickfix
para mais informações.
PS, você disse que não queria uma abordagem que exclua linhas e depois as desfaça. Mas como você marcou g/ERROR
como a resposta, pensei em apontar uma maneira rápida e suja de fazer g!/ERROR/d
. Você pode desfazê-lo facilmente usando u
. Além disso, para sua informação, você pode fazer :set hlsearch
para destacar padrões combinados com :g
comandos.