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?

Mella
fuente

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).

Hugo Corrá
fuente
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+$

pilar de señal
fuente
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

V-Light
fuente
10

Una solución para buscar / reemplazar:

Búsqueda de expresiones regulares:\s+

Reemplazar con: // espacio simple

Usersbs
fuente
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}

abdominales
fuente
7

Tuve que usar:

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

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

Bruce Edge
fuente
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

rsc05
fuente
5

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

Samuel Wahome
fuente
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 ...

Brian Joseph Spinos
fuente
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.

deltab
fuente
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.

Dihia LANASRI
fuente
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.

Polla
fuente
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ó.

Donncha
fuente
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
MetalGodwin
fuente
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.

Clayton Loudon
fuente
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

Naeem Ijaz
fuente
-1

Si ^\nno funciona correctamente ===> intente .*[^\w]\n

yuxin Zhang
fuente