Sublime Text 2: Come eliminare le righe vuote / vuote


272

Diciamo che avevo un file di testo con le seguenti nove righe:

foo

bar

baz

qux

quux

Come posso usare Sublime Text 2 per rimuovere tutte e quattro le righe vuote / vuote, lasciando solo cinque righe?

Risposte:


658

Seleziona il testo

Stampa:

  • Ctrl+ Hsu PC o
  • Command+ Alt+ Fsu Mac o
  • Fai clic su Trova-> Sostituisci.

Assicurati di aver selezionato 'espressione regolare' premendo:

  • Alt+ Rsu PC o
  • Command+ Alt+ Rsu Mac o
  • Fai clic .*nella casella Trova.

Trovare cosa: ^\n

Sostituisci con: (niente, lascia in bianco).


3
Funziona, grazie! Esiste un modo per associare la ricerca / sostituzione a una scorciatoia da tastiera o in qualche modo salvarla per un accesso rapido? L'ho cercato su Google e non sono riuscito a trovare nulla
Nick,

46
Piccolo suggerimento da utilizzare ^(\r|\n\r?)per coprire tutte le possibili interruzioni di riga.
Haris Krajina,

5
Per me (Sublime Text 2) la scorciatoia è (Alt + Cmd + F) quindi come descritto da Hugp Corra
Maxence

24
Un modo migliore per trovare tutte le righe vuote (comprese quelle con spazi bianchi) sarebbe: ^[\s]*?[\n\r]+
Casse

5
@Crates non ti serve ?, poiché *corrisponde anche a zero occorrenze e \s*corrisponderà al '\ r' extra quando, ad esempio, modifica il testo di Windows in un ambiente Linux, ^\s*$anche il trucco.
drevicko,

67

La regexp nella risposta di Hugo è corretta quando non ci sono spazi nella linea. Nel caso in cui ci sia spazio regexp può essere^\s+$


32
Ciò presuppone che ci sia spazio bianco. Inoltre, non funzionerà per sostituire effettivamente le linee con niente. Prova ^[\s]*?[\n\r]+invece. L'ho provato e funziona.
Casse,

24

Esistono anche alcuni plugin ST2 / ST3 per tali compiti. Mi piacciono questi due:

Il primo ha due metodi per rimuovere le righe vuote / non necessarie. Uno di loro ha chiamato Delete Surplus Blank Linesche è bello. Rimuove solo quelle linee che sono seguite da un'altra linea vuota


10

Una soluzione Trova / Sostituisci:

Regex Find:\s+

Sostituisci con: // spazio singolo


3
In realtà, questo: $ \ s +
kris,

8

Non so nemmeno come ^\s*$funzioni tutto, ma ci ho provato e non ho funzionato (lasciando ancora alcune righe vuote).

Questo invece ^\s*funziona per me

{testo sublime 3}


7

Ho dovuto usare:

sostituisci \ n ^ \ s * \ n con \ n

Il plugin https://github.com/NicholasBuse/sublime_DeleteBlankLines non ha fatto nulla.


2
Assicurati di selezionare l'area che vuoi che abbia effetto e quindi usa i rispettivi tasti di scelta rapida Windows : Ctrl + Alt + Backspace (Elimina righe vuote) Ctrl + Alt + Maiusc + Backspace (Elimina righe vuote in eccesso) OSX : Ctrl + Alt + Elimina (Elimina righe vuote) Ctrl + Alt + Maiusc + Elimina (Elimina righe vuote) Linux : Ctrl + Alt + Backspace (Elimina righe vuote) Ctrl + Alt + Maiusc + Backspace (Elimina righe vuote in eccesso)
Xtremefaith

5

Testo sublime 2 e 3

I commenti di @crates funzionano per me,

Passaggio 1: premere semplicemente ctrl+H

Passaggio 2: premere il tasto RegEX

Passaggio 3: scrivere questo nel Trova: ^[\s]*?[\n\r]+

Passaggio 4: sostituire tutto


5

Più semplice di quanto pensassi. Ctrl+ ASeguito da Ctrl+ HQuindi selezionare Espressione regolare .*. Sostituisci \n\ncon \n. Ecco!


3

Stai cercando questo:

^\n|^\s+$

non eliminerà la linea, se c'è contenuto con spazi bianchi o schede davanti>

per esempio:

questi non verranno cancellati: ... spazio ... abc

... tab ... abc

questo sarà:

... spazio ... ... nient'altro ...

... scheda ... ... nient'altro ...


3

Utilizzo di selezioni multiple: selezionare una coppia di interruzioni di riga, quindi utilizzare più volte Ricerca rapida tutto ( Alt+ F3) o Aggiunta rapida successiva ( Ctrl+ D) per selezionarle tutte; quindi premi Enterper sostituirli con interruzioni a riga singola.


1
In documenti di grandi dimensioni, trovo che si blocchi Sublime.
Thalecress

3

Il loro è un modo più semplice per farlo senza regex. devi solo selezionare l'intero testo. quindi vai a: Modifica -> Linee consentite -> Unico.

È tutto. e tutte le righe vuote verranno eliminate.


Ciò eliminerà TUTTE le righe non univoche. Non solo spazi vuoti. Quindi, supponiamo che tu abbia HTML con molte righe che sono una singola chiusura </div>, le cancellerà tutte tranne la prima. O nel codice, eliminerà tutta la tua chiusura}. Questo non è affidabile per eliminare solo le righe vuote, capire cosa fa.
Ivan McA

2

Un altro modo, è possibile utilizzare la riga cc.dbldi comando di ConyEdit (un plug-in) per eliminare righe vuote o righe vuote.


1

C'è anche "Unisci linee". Se su OSX, seleziona tutto il testo e premi CMD-J alcune volte, e comprimerà la selezione per riga, rimuovendo le interruzioni di riga.

Modifica: questo approccio ti lascerà con tutto su una riga, che non è quello che hai chiesto.


2
Vedo dove stai andando con questo però .. questo suggerimento risultati in trascinando tutti i contenuti in una sola riga, ma una macro potrebbe fare questo lavoro: (i tasti OSX) ctrl-q(record di macro), cmd-j(join linee), down arrow, ctrl-q(macro end) . Quindi shift-ctrl-qripetere tutte le volte che è necessario ...
ptim,



0

Nel mio caso alcune righe vuote contenevano il carattere unicode a larghezza zero (U + 200b). Per eliminare le righe vuote, comprese quelle con questo carattere unicode:

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

0

Usando trova / sostituisci, prova a incollare una selezione che inizia alla fine della riga sopra la riga vuota e termina all'inizio della riga dopo lo spazio vuoto. Funziona per una singola riga vuota. Puoi ripetere il processo anche per più righe vuote. CTRL- H, inserisci la selezione nella casella Trova e inserisci una nuova riga nella casella Sostituisci tramite copia / incolla o altro metodo.


0

Per trovare spazi extra e righe vuote premi Ctrl+ Shift+ F Seleziona Trova espressioni regolari

[\n\r]{2,}

e quindi sostituire con

\n

per rimuovere tutti i tipi di spazi in sublime e dreamviewr


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.