¿Cómo eliminar todas las líneas que NO contienen una palabra determinada en Vim?


94

En vim puedo eliminar todas las líneas que contienen la palabra "precio" con esto

:g /price/d

¿Cómo puedo eliminar todas las líneas que NO contienen la palabra "precio"?


1
¿Se puede migrar esta pregunta a vi.stackexchange.com ? Traté de marcarlo para la migración pero no pude resolverlo.
Mu Mind

@MuMind Está en el tema aquí, así que no hay necesidad de migrar . " No migre por el bien de la migración. Solo migramos preguntas porque son fuera de tema en el sitio original . Es perfectamente posible que una pregunta esté relacionada con el tema en varios sitios, pero eso no es una razón para migrarla a otro lugar, a menos que el OP solicite la migración ". Además, solo los empleados de SE pueden migrar después de 60 días y es muy raro que Will (ni siquiera los moderadores pueden migrar una pregunta anterior).
8bittree

Respuestas:


134

Puedes usar

:%g!/price/d

para borrar todas las líneas que no contienen "precio"


2
Sabía que sería fácil ...
digitaljoel

29
:g! también es conocido como :v (similar a grep -v ).
Chris Johnsen

2
Lo que hace el % ¿hacer?
hippietrail

3
% Es un rango especial en este contexto que significa todo el archivo. Ver :help cmdline-ranges.
Heptite

14

También puedes usar:

:v/price/d

para borrar lineas.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.