orden - vim editar y guardar
Ocultar todas(no) líneas coincidentes en Vim (5)
¿Conoces el :global
comando :global
? ¿Hace esto lo que quieres?
:g/ERROR
y por el contrario:
:g!/Error
o equivalente:
:v/Error
¿Es posible mostrar / ocultar todas las líneas coincidentes en vi o Vim? No resaltar, solo mostrar solo esas líneas.
Por ejemplo, tengo un texto con la palabra ERROR
. ¿Cómo hago que muestre solo las líneas que contienen ERROR
y cómo mostrar solo las líneas sin ERROR
?
¿Hay una solución sin eliminar todas las líneas que coincidan y luego simplemente deshacerlo?
La mejor manera de hacerlo es->
:vimgrep /something/g % | copen
Esto abrirá la lista de coincidencias para su palabra clave y también mostrará solo las líneas coincidentes en la ventana de revisión rápida.
Otro enfoque según su caso de uso sería usar vimgrep y sus resultados en quickfix . Puedes hacer lo siguiente:
:vimgrep pattern %
buscará el archivo actual y lo llevará al primer resultado de búsqueda. Lo que es más importante, también pone los resultados en la "lista de soluciones rápidas".
:copen
abrirá la lista de soluciones rápidas en una ventana de solución rápida separada. Entonces tendrá una ventana separada con todas las líneas de su último vimgrep. Dentro de la ventana de revisión rápida, puede presionar Entrar o hacer doble clic en una línea para saltar a la línea correspondiente en su archivo original.
:colder
le permitirá volver a listas de solución rápida anteriores (resultados de vimgrep más antiguos). Y :cnewer
avanza a nuevos resultados de búsqueda.
Tenga en cuenta que la lista de soluciones rápidas también se actualiza cuando se ejecuta :make
(razón por la cual se llama quickfix para corregir errores). Debido a esto, también hay una alternativa a la lista de soluciones rápidas llamada "lista de ubicaciones". Para usarlo en su lugar, use :lvimgrep
, luego use comandos con prefijo l en lugar de comandos con prefijo c - :lopen
:lolder
:lnewer
.
Por supuesto, hay mucho más que puedes hacer. Ver :help quickfix
para más información.
PD, dijiste que no querías un enfoque que borre las líneas y luego las deshagas. Pero ya que marcó g/ERROR
como la respuesta que pensé que señalaría de una manera rápida y sucia es hacer g!/ERROR/d
. A continuación, puede deshacerlo fácilmente con u
. Además, para su información, puede hacer lo siguiente :set hlsearch
para resaltar los patrones combinados con los comandos :g
.
Probablemente se refiere al comando en menos vi vim y / pattern / que muestra líneas que contienen / pattern / (como grep).
Puedes usar
:g/ERROR/
para imprimir todas las líneas con ERROR
También hay un plugin de Vim que vi muchas veces pero no usé: foldsearch: líneas plegables que no coinciden con un patrón dado