Pregunta Vim eliminar líneas en blanco


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


596
2018-04-01 15:34


origen


Respuestas:


:g/^$/d

:g ejecutará 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 (borrar)


1086
2018-04-01 15:36



Lo encontré, es:

g/^\s*$/d

Fuente: El poder de gramo en vim wikia


165
2018-04-01 15:35



:v/./d

o

:g/^$/d

o

:%!cat -s

46
2018-04-01 15:36



Lo siguiente puede usarse para eliminar solo líneas en blanco múltiples (reducirlas a una sola línea en blanco) y dejar intactas las líneas en blanco:

:g/^\_$\n\_^$/d

40
2018-04-07 14:52



  1. cómo eliminar todas las líneas de espacios en blanco

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

    (haz esto varias veces, todas las líneas vacías desaparecieron)

  2. cómo eliminar todas las líneas en blanco dejando SINGLE 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 AL 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


12
2017-10-26 07:12



Qué tal si:

:g/^[ \t]*$/d

6
2018-04-01 15:38



trabajar con perl en vim:

:%!perl -pi -e s/^\s*$//g


5
2018-05-01 13:17



Esto funciona para mí

:%s/^\s*$\n//gc


5
2018-02-28 16:34



Esta función solo elimina dos o más líneas en blanco, ponga las líneas a continuación en su vimrc, luego use \ d para llamar a la función

fun! DelBlank()
   let _s=@/
   let l = line(".")
   let c = col(".")
   :g/^\n\{2,}/d
   let @/=_s
   call cursor(l, c)
endfun
map <special> <leader>d :keepjumps call DelBlank()<cr>

5
2018-05-01 20:10



Intenté algunas de las respuestas en esta página, pero muchas de ellas no funcionaron para mí. Tal vez porque estoy usando Vim en Windows 7 (no te burles, solo ten piedad de mí: p)?

Aquí está el más fácil que encontré que funciona en Vim en Windows 7:

:v/\S/d

Aquí hay una respuesta más larga sobre la Wikia de Vim: http://vim.wikia.com/wiki/Remove_unwanted_empty_lines


4
2018-04-07 16:26



:g/^\s*$/d
^ begin of a line
\s* at least 0 spaces and as many as possible (greedy)
$ end of a line

pegar

:command -range=% DBL :<line1>,<line2>g/^\s*$/d

en tu .vimrc, luego reinicia tu vim. si usas el comando: 5,12DBL borrará todas las líneas en blanco entre la 5ª fila y la 12ª fila. ¡Creo que mi respuesta es la mejor respuesta!


3
2018-04-30 06:56