Vim elimina líneas en blanco

Resuelto nearly_lunchtime asked hace 15 años • 14 respuestas

¿Qué comando puedo ejecutar para eliminar líneas en blanco en Vim?

nearly_lunchtime avatar Apr 01 '09 22:04 nearly_lunchtime
Aceptado
:g/^$/d

:gejecutará un comando en líneas que coincidan con una expresión regular. La expresión regular es 'línea en blanco' y el comando es :d(eliminar)

soulmerge avatar Apr 01 '2009 15:04 soulmerge

Lo encontré, es:

g/^\s*$/d

Fuente: Poder de g en vim wikia

Breve explicación de:g

:[range]g/pattern/cmd

Esto actúa en el [rango] especificado (archivo completo predeterminado), ejecutando el comando Ex cmd para cada línea que coincida con el patrón (un comando Ex es uno que comienza con dos puntos, como :dpara eliminar). Antes de ejecutar cmd , " ." se establece en la línea actual.

nearly_lunchtime avatar Apr 01 '2009 15:04 nearly_lunchtime
:v/./d

o

:g/^$/d

o

:%!cat -s
mandaleeka avatar Apr 01 '2009 15:04 mandaleeka

Se puede utilizar lo siguiente para eliminar solo varias líneas en blanco (reducirlas a una sola línea en blanco) y dejar intactas las líneas en blanco individuales:

:g/^\_$\n\_^$/d
Draemon avatar Apr 07 '2009 14:04 Draemon
  1. cómo eliminar todas las líneas en blanco

    :%s,\n\n,^M,g
    

    (haga esto varias veces hasta que desaparezcan todas las líneas vacías)

  2. cómo eliminar todas las líneas en blanco dejando UNA SOLA línea vacía

    :%s,\n\n\n,^M^M,g
    

    (haz esto varias veces)

  3. cómo eliminar todas las líneas en blanco dejando DOS líneas vacías COMO MÁXIMO,

    :%s,\n\n\n\n,^M^M^M,g
    

    (haz esto varias veces)

Para ingresar ^M, tengo que controlar-Q y controlar-M en Windows.

gauge00 avatar Oct 26 '2012 07:10 gauge00