Visual Studio Code - eliminar todas las líneas en blanco - regex


133

Pasé algún tiempo tratando de descubrir cómo eliminar todas las líneas en blanco en Visual Studio Code y no puedo hacerlo funcionar. ¿Alguien sabe cómo hacerlo, por favor?

Si busco ^$mientras lo escribo en el campo de búsqueda, VSC encuentra las líneas en blanco (líneas completamente en blanco, significa que no hay espacios en blanco) pero no las elimina cuando presiono Reemplazar todo. No hace nada: ^ $

Para líneas en blanco con espacios, la ^\s+$búsqueda funciona, pero no las elimina. Lo que hace es reemplazarlos con una línea en blanco sin espacios :)) ^ \ s + $

Debe ser que estoy haciendo algo mal. Simplemente no puedo entender qué es. ¿Cualquiera sabe? Gracias.


1
Agregué un comentario sobre el problema que abrió sobre esto, pero para cualquier otra persona, en $realidad no coincide con el nuevo carácter de línea, coincide con un token de ancho cero que existe antes del nuevo carácter de línea. Para reemplazar una nueva línea, debe usarla, \npero VS Code no admite actualmente coincidencias de expresiones regulares de varias líneas ( # 313 )
Marie

Gracias marie Parece que tenemos que esperar un rato.
jozefk

44
Encuentre esto en modo regex ^ $ \ n y reemplácelo con blanco también funcionará bien. Feliz codificación !!!
sajal rajabhoj

Respuestas:


194

Para aquellos que puedan estar interesados, lo que funcionó para mí en la versión 1.3.1 (y todavía funciona en 1.33.1) para eliminar líneas en blanco usé ctrl+ h(buscar y reemplazar) alt+ r(Usar expresión regular)

En el cuadro de búsqueda, entonces:

\n\n

En caja de reemplazo:

\n

Esto debería hacer dos signos consecutivos de fin de línea en uno.

editado:

Si necesita reemplazar más líneas vacías (más de dos) a la vez, puede usar la siguiente expresión regular en el cuadro de búsqueda:

\n+

Si necesita reemplazar también las líneas vacías con espacios en blanco, debe usar la siguiente expresión regular en el cuadro de búsqueda:

\n+\s*\n

El código VS está usando expresiones regulares de JavaScript


10
En este sentido, uso^[\r\n]{3,}
RJ Cuthbertson

Está funcionando ahora. Gracias :) Muchas versiones de VSC en el medio, pero está bien. Reemplazar \ n \ n con \ n funcionó bien.
jozefk

También mire la solución @Dzumret a continuación. En mi solución, elimina solo las líneas donde no hay nada. Su solución elimina líneas donde también hay algunos espacios en blanco (espacios, tabulaciones)
suchoss

Esta respuesta no toma todos los casos, ¿y si tiene espacios en línea en blanco
Dhaker

1
¡Excelente! Para eliminar más de una línea vacía consecutiva, reemplacé \ n + con \ n. Para contar espacios en blanco también reemplace (^ \ s * \ n) + con nada
Ilario

114

Lo que también funciona es este patrón regex:

^\s*$\n

Luego CTRL+Enterpara reemplazar todas las líneas.

Explicación del patrón anterior:

-----------------------------------------------
|  ^ | beginning of string anchor             |
-----------------------------------------------
| \s | any whitespace character               |
-----------------------------------------------
| '*'| zero or more repetitions               |
-----------------------------------------------
|  $ | end of string anchor                   |
-----------------------------------------------
| \n | new line                               |
-----------------------------------------------

No estoy seguro, pero solo esto funcionó para mí, en comparación con todas las otras respuestas. Bien explicado también. Gracias.
Sai

Colocar el \nexterior de las anclas es lo que funcionó para mí. VSCode luego permitió que se reemplazara por nada (campo "reemplazar con" en blanco).
Eric

46

Visual Studio Code 1.13.0 Linux Lite:

  • Hit CTRL+H
  • Seleccione "Usar expresión regular"
  • Cuadro de búsqueda: ^ (\ s) * $ \ n (ingrese muchos finales \ n según lo necesite)
  • Reemplazar caja: vacía
  • Haga clic en reemplazar todo

¡Líneas vacías desaparecidas!


18

Aquí está mi expresión regular, atrapa todas las líneas nuevas adicionales y líneas vacías que contienen solo espacio, pestañas, etc.

\n\s*\n

Y reemplazo todos los partidos con \n

Explicación

\n       : New Line
\s*      : Zero or more consecutive white space characters or new lines
\n       : Another New Line

PD: ¡Recuerda elegir la opción regex en la ventana de búsqueda!


13

Intente usar ^ \ s * \ n en el cuadro de diálogo Reemplazar de VS Code -

mira aquí


6

No, lo estás haciendo bien.

Tengo el mismo comportamiento aquí.

También probé otra expresión regular: (\r?\n){2,} pero parece que solo funciona para líneas simples.

tal vez hay una preferencia para cambiar el comportamiento predeterminado de regexp, o tal vez VS se construye de tal manera (basado en línea)

Por supuesto, no es gran cosa cortar y pegar desde otro editor de texto.


3
esto me ayudó solo después de que reemplacé todo ^\s*$por vacío, luego lo intenté(\r?\n){2,}
Mihai Popescu el

4

No sé sobre ti, ¡pero memorizar muchos comandos para mí es una pérdida de tiempo!

Use la extensión "Blank Line Organizer", aquí está la descripción:

Esta extensión lo ayudará a organizar líneas en blanco en el código al eliminar varias líneas en blanco. La extensión elimina líneas en blanco solo de las líneas seleccionadas, si las hay, de lo contrario, de todo el archivo

Cómo usarlo: verifique la descripción de la extensión, ¡pero realmente se ve bien!

blankLine.triggerOnSave boolean true    If set to true, the command will be triggered on save.

En otras palabras, después de guardar el archivo, ¡se limpia automáticamente!


Hola @ jun! Estoy usando Sublime Text3 que ha resuelto muchos problemas, además es más ligero y tiene algunas características agradables.
Marcelo Agimóvel

¿Qué plugin utilizas con Sublime Text3? Solía ​​usar Webstorm y está integrado.
Jun711

Html / CSS / JS Prettify
Marcelo Agimóvel

3

Encontré lo siguiente mejor para mí en Visual Studio:

Reemplazar: ^\n$ con: <no value here>

Esto encontrará todas las líneas vacías y las eliminará.


3

En mi caso. La solución kobi7 (\r?\n){2,}solo funcionó para mí, tuve que ejecutarla nuevamente con una pequeña modificación para que funcione para líneas individuales (solo cambié de 2 a 1)

^(\r?\n){1,}

0

Code Maid Extension es todo lo que necesitas. Puede usar el atajo Ctrl M + barra espaciadora para limpiar su archivo, eliminará las líneas vacías y formateará su código. También puede configurar sobre el formato y la regla de limpieza. Espero que esto sea útil.


No encontrado (en Manjaro Linux).
Marcelo Agimóvel

2
Eso es porque es una extensión de Visual Studio, no una extensión de Visual Studio Code.
Rene Juuse


0

Existe mi versión para limpiar líneas vacías con espacios en blanco:

find:    (?:\s*$(\r?\n)){2,}
replace: $1

-1

Reemplazar: ^ \ n $ Con: "espacio en blanco"


y eliminar cada espacio en blanco en su documento?
Enojado 84

-4

Windows 10, Visual Studio 2015

Ctrl + H

Buscar ... -> ^ \ s *

Reemplaza todo

Ctrl + A

Ctrl + K + F

Gracias por tu pregunta, aprendí algo nuevo.


55
Visual Studio 2015 no es Visual Studio Code.
Robert Kaucher
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.