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.