ex-mode – eliminar líneas que coincidan con un patrón desde una línea determinada hasta el final del archivo

Pregunta:

Si tengo un archivo con muchos comentarios y quiero eliminar todos los comentarios desde, digamos, la línea 3 hasta el final del archivo, ¿cuál es la mejor manera de hacerlo?

Estoy atascado, ya que lo que intenté por primera vez no parece hacer lo que quiero:

:3,$/^#/d

En lugar de buscar el patrón y eliminar las líneas con él en el rango desde 3 hasta el final del archivo, elimina todas las líneas desde 3 hasta una línea que coincide con el patrón, y luego se detiene.

Entonces, ¿cómo aplico un comando ex a un rango de líneas? En este caso, es hasta el final de un archivo, pero ¿sería diferente si lo hiciera hasta una marca, o entre las líneas 10 y 20 u otros rangos?

Respuesta:

Utilice el comando :global para eso:

:3,$g/^#/d

Puede aplicarlo a líneas que no coincidan con un patrón:

:3,$g!/^#/d

Puede usar el mecanismo de rango completo con él (ver :help :range ):

:.,/#define/+3g/^#/d

Y puedes usarlo con cualquier comando:

:3,$g/^#/s/foo/bar/g

Es uno de los comandos más poderosos de Vim, consulte :help :global para obtener más detalles.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım