¿Es posible mostrar / ocultar todas las líneas coincidentes en vi o Vim? No resaltar sino mostrar solo esas líneas.
Por ejemplo, tengo un texto con la palabra la palabra ERROR. ¿Cómo hago que muestre solo líneas que contienen ERRORy cómo mostrar solo líneas sin ERROR?
¿Existe una solución sin eliminar todas las líneas coincidentes y luego simplemente deshacerlo?

Respuestas:
¿Conoce el
:globalcomando? ¿Hace esto lo que quieres?y por lo contrario:
o equivalente:
fuente
g<para ver de nuevo, o@:si no has ejecutado y comandos.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 hacerlog!/ERROR/d. A continuación, puede deshacerlo fácilmente usandou. También para su información, puede hacer:set hlsearchpara resaltar patrones que coincidan con:gcomandos.fuente
Puedes usar
para imprimir todas las líneas con ERROR
También hay un complemento de Vim que vi muchas veces pero que no usé: foldsearch: líneas de pliegue que no coinciden con un patrón determinado
fuente
La mejor forma de hacer esto es->
Esto abrirá la lista de coincidencias para su palabra clave y también mostrará solo las líneas coincidentes en la ventana de corrección rápida.
Reemplace% con la ruta al archivo si no está considerando el archivo actual.
fuente
:vimgrep /something/g % | copenfunciona increíble. También:g/<pattern>/dse puede utilizar para eliminar líneas con el patrón.fuente
en caso de que lo use
fzf, puede usar::Linesen todos los archivos abiertos:BLinessolo en búfer abierto:Rg [pattern]utilizandoripgrepfuente
Alguna forma sucia hackish de hacer esto:
fuente
Probablemente te refieres al comando en menos vi vim & / patrón / que muestra líneas que contienen / patrón / (como grep).
fuente