Sublime Text 2: Cómo eliminar líneas en blanco / vacías


272

Digamos que tenía un archivo de texto con las siguientes nueve líneas:

foo

bar

baz

qux

quux

¿Cómo puedo usar Sublime Text 2 para eliminar las cuatro líneas en blanco / vacías, dejando solo cinco líneas?

Respuestas:


658

Selecciona el texto

Prensa:

  • Ctrl+ Hen PC, o
  • Command+ Alt+ Fen Mac o
  • Haga clic en Buscar-> Reemplazar.

Asegúrese de haber seleccionado 'expresión regular' presionando:

  • Alt+ Ren PC o
  • Command+ Alt+ Ren Mac o
  • Haga clic .*en el cuadro Buscar.

Encontrar que: ^\n

Reemplazar con: (nada, dejar en blanco).


3
Eso funciona, gracias! ¿Hay alguna manera de vincular esa búsqueda / reemplazo a un atajo de teclado o de alguna manera guardarlo para un acceso rápido? Lo busqué en Google y no pude encontrar nada
Nick

46
Sugerencia pequeña ^(\r|\n\r?)para cubrir todos los saltos de línea posibles.
Haris Krajina

55
Para mí (Sublime Text 2) el atajo es (Alt + Cmd + F) y luego como lo describe Hugp Corra
Maxence

24
Una mejor manera de encontrar todas las líneas vacías (incluidas las que tienen espacios en blanco) sería: ^[\s]*?[\n\r]+
Cajas

55
@ Cajas que no necesita ?, ya que *también coincide con cero ocurrencias y \s*coincidirá con el '\ r' adicional cuando, por ejemplo, edite texto de Windows en un entorno Linux, también lo ^\s*$hace el truco.
drevicko

67

La expresión regular en la respuesta de Hugo es correcta cuando no hay espacios en la línea. En caso de que haya espacio regexp puede ser^\s+$


32
Eso supone que hay espacios en blanco. Además, no funcionará para sustituir realmente las líneas con nada. Intenta en su ^[\s]*?[\n\r]+lugar. Lo he probado y funciona.
Cajas

24

También hay algunos complementos ST2 / ST3 para tales tareas. Me gustan estos dos:

El primero tiene dos métodos para eliminar líneas vacías / innecesarias. Uno de ellos llamado Delete Surplus Blank Linesque es genial. Elimina solo aquellas líneas que son seguidas por otra línea vacía


10

Una solución para buscar / reemplazar:

Búsqueda de expresiones regulares:\s+

Reemplazar con: // espacio simple


3
En realidad, esto: $ \ s +
kris

8

Ni siquiera sé cómo funciona todo esto, pero lo intenté ^\s*$y no funcioné (dejando algunas líneas vacías).

En cambio, esto ^\s*funciona para mí

{sublime text 3}


7

Tuve que usar:

reemplace \ n ^ \ s * \ n con \ n

El complemento https://github.com/NicholasBuse/sublime_DeleteBlankLines no hizo nada en absoluto.


2
Asegúrese de seleccionar el área que desea que efectúe y luego use las teclas de acceso directo respectivas Windows : Ctrl + Alt + Retroceso (Eliminar líneas en blanco) Ctrl + Alt + Shift + Retroceso (Eliminar líneas en blanco excedentes) OSX : Ctrl + Alt + Eliminar (Eliminar líneas en blanco) Ctrl + Alt + Mayús + Eliminar (Eliminar líneas en blanco) Linux : Ctrl + Alt + Retroceso (Eliminar líneas en blanco) Ctrl + Alt + Shift + Retroceso (Eliminar líneas en blanco excedentes)
Xtremefaith

5

Sublime Text 2 y 3

Los comentarios de @crates me funcionan,

Paso 1: simplemente presione ctrl+H

Paso 2: presione la tecla RegEX

Paso 3: escribe esto en Buscar: ^[\s]*?[\n\r]+

Paso 4: reemplace todo


5

Más simple de lo que pensaba. Ctrl+ ASeguido por Ctrl+ HLuego seleccione Expresión regular .*. Reemplazar \n\ncon \n. Voila!


3

Estás buscando esto:

^\n|^\s+$

no eliminará la línea, si hay contenido con espacios en blanco o pestañas al frente>

p.ej:

estos no serán eliminados: ... espacio ... abc

... pestaña ... abc

esta voluntad:

... espacio ... ... nada más ...

... pestaña ... ... nada más ...


3

Uso de selecciones múltiples: seleccione un par de saltos de línea, luego use Búsqueda rápida de todos ( Alt+ F3), o Quick Add Next ( Ctrl+ D) repetidamente, para seleccionarlos todos; luego presione Enterpara reemplazarlos con saltos de línea individuales.


1
En documentos grandes, encuentro que esto bloquea Sublime.
Thalecress

3

Es una forma más fácil de hacerlo sin expresiones regulares. solo tiene que seleccionar todo el texto. luego vaya a: Editar -> Permute Lines -> Unique.

Eso es todo. y todas las líneas en blanco se eliminarán.


Esto eliminará TODAS las líneas no únicas. No solo espacios en blanco. Entonces, supongamos que tiene HTML con muchas líneas como cierre único </div>, las eliminará todas excepto la primera. O en el código, eliminará todo su cierre}. Esto no es confiable para eliminar solo líneas en blanco, entienda lo que hace.
Ivan McA

2

Otra forma, puede usar la línea cc.dblde comando de ConyEdit (un complemento) para eliminar líneas en blanco o líneas vacías.


1

También hay "Unir líneas". Si está en OSX, seleccione todo su texto y presione CMD-J varias veces, y colapsará su selección por línea, eliminando los saltos de línea.

Editar: este enfoque lo dejará con todo en una línea, que no es lo que solicitó.


2
Sin embargo, veo a dónde vas con esto ... esta sugerencia da como resultado arrastrar todo el contenido a una línea, pero una macro haría que esto funcione: (teclas OSX) ctrl-q(macro de grabación), cmd-j(líneas de unión) down arrow, ctrl-q(macro final) . Luego shift-ctrl-qde repetir tan a menudo como sea necesario ...
optim



0

En mi caso, algunas líneas vacías contenían el espacio de ancho cero de caracteres Unicode (U + 200b). Para eliminar líneas vacías, incluidas las que tienen este carácter unicode:

\s\x{200b}|^\s

0

Usando buscar / reemplazar, intente pegar una selección que comience al final de la línea sobre la línea en blanco y termine al principio de la línea después del espacio en blanco. Esto funciona para una sola línea en blanco. También puede repetir el proceso para varias líneas en blanco. CTRL- H, coloque su selección en el cuadro de búsqueda y coloque una nueva línea en el cuadro de reemplazo mediante copiar / pegar u otro método.


0

Para buscar espacios adicionales y líneas en blanco, presione Ctrl+ Shift+ F Seleccionar expresiones regulares Buscar

[\n\r]{2,}

y luego reemplazar con

\n

para eliminar todo tipo de espacios en sublime y dreamviewr


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.