La prima volta che questo mi ha morso, stavo copiando un blocco di termini e condizioni da un PDF in una risposta di supporto Sembrava a posto nel PDF Nel momento in cui è atterrato nel mio editor si è trasformato in una scala, ogni linea si è spezzata in una nuova riga a metà pagina, perché il PDF aveva prodotto un duro ritorno alla fine di ogni linea visiva Fissarlo a mano significava eliminare una nuova riga, aggiungere uno spazio e ripetere quella quaranta volte Ho costruito abbastanza strumenti su Toolz.dev per sapere quando vale la pena automatizzare un lavoro, e questo mi stava silenziosamente sprecando tempo per anni Così ho costruito il rimuovere lo strumento interruzioni di riga, e questa guida è tutto ciò che ho imparato sul perché esiste il problema e su come pulirlo correttamente.
tl; dr: Il testo copiato da PDF, e-mail e terminali spesso presenta un'interruzione di riga alla fine di ogni riga di visualizzazione anziché solo alla fine di ogni paragrafo. Incollarlo lascia linee spezzate e cenciose. il rimuovere lo strumento interruzioni di riga elimina quelle nuove righe e unisce il testo con un separatore scelto, e la sua modalità di consapevolezza dei paragrafi mantiene le righe vuote tra i paragrafi in modo che il risultato si legga come prosa, non come una gigantesca riga di esecuzione Tutto viene eseguito nel browser, quindi non viene caricato nulla.
Perché il mio testo copiato è pieno di interruzioni di riga?
La risposta breve è che un'interruzione di riga e un'interruzione di paragrafo sono due cose diverse e molti software le confondono.
Quando si digita un elaboratore di testi o un browser, si preme Invio solo alla fine di un paragrafo Il testo si avvolge automaticamente all'interno del paragrafo, quindi le linee visive che si vedono vengono decise al volo dalla larghezza della finestra Non ci sono caratteri di interruzione di riga all'interno del paragrafo Che si chiama soft wrapping, ed è per questo che lo stesso paragrafo si rifà in modo pulito quando si ridimensiona la finestra.
Un sacco di altre fonti fanno il contrario Un PDF memorizza la posizione di ogni riga, quindi quando si copia il testo fuori di esso, l'estrattore spesso mette un vero carattere di nuova riga alla fine di ogni riga che vede sulla pagina Le e-mail di testo semplice erano storicamente avvolte a 72 o 76 colonne con un ritorno rigido su ogni riga, una convenzione che precede il web e si presenta ancora nelle mailing list e nelle risposte citate Commenti del codice, file di registro e qualsiasi cosa stampata su un terminale a larghezza fissa fanno lo stesso In tutti questi, la nuova riga non segna la fine di un pensiero, sta segnando la fine di una linea fisica che è capitata così ampia.
Quando lo incolli in un luogo che fa un avvolgimento morbido, le due idee si scontrano Il tuo editor avvolge già il testo per adattarlo, e ora ci sono ritorni extra duri tagliando le linee brevi prima che raggiungano il bordo Il risultato è la scala: linee che si rompono in luoghi strani, rifiutano di rifluire e sembrano rotte in ogni dimensione della finestra tranne quella da cui sono state copiate.
Cosa fa la rimozione delle interruzioni di riga?
Rimuovere le interruzioni di riga significa eliminare quei caratteri di nuova riga e ricucire i pezzi insieme in modo che le parole scorrano di nuovo come testo continuo L'unica vera decisione è cosa mettere nello spazio in cui si trovava ogni nuova riga.
La maggior parte delle volte si desidera un singolo spazio, perché la nuova riga stava in piedi per lo spazio tra due parole che una frase avrebbe normalmente A volte non si vuole nulla a tutti, ad esempio quando un numero lungo o un token di codice è stato diviso su due righe e deve essere ricongiunto senza spazio E a volte si desidera una virgola o un altro separatore, perché le linee erano davvero una lista e si desidera che su una riga come valori separati da virgole Lo strumento ti dà tutti questi, più un campo personalizzato per qualsiasi altra cosa.
C'è un altro carattere che vale la pena conoscere Windows termina le righe con due caratteri, un ritorno a capo seguito da un feed di riga, scritto come CRLF. Unix e macOS moderno utilizzano un feed a riga singola, LF. Il software Mac molto vecchio utilizzava un ritorno a capo solitario, CR. Se mescoli testo da fonti diverse puoi ritrovarti con una combinazione irregolare di tutti e tre e un ingenuo trova e sostituisci che cerca solo uno di loro lascia indietro gli altri Lo strumento rimuovi interruzioni di riga normalizza prima tutti e tre, quindi non importa da dove proviene il tuo testo, ogni fine riga viene gestita allo stesso modo.
Come faccio a rimuovere le interruzioni di riga ma a mantenere i miei paragrafi?
Questa è la caratteristica che trasforma lo strumento da strumento contundente in uno utile, quindi vale la pena capirlo.
Se si elimina semplicemente ogni nuova riga in un documento, si ottiene un paragrafo enorme Tutte le frasi corrono insieme in un'unica riga ininterrotta, e la struttura che ha reso il testo leggibile è andata. Questo è occasionalmente ciò che si desidera, ma di solito non lo è Quello che si desidera è rimuovere le interruzioni di riga accidentali all'interno di ogni paragrafo mantenendo le interruzioni deliberate tra i paragrafi.
Lo strumento distingue i due guardando le linee vuote Una singola newline viene trattata come una rottura accidentale all'interno di un paragrafo e viene rimossa Una linea vuota, che è due newline di fila, viene trattata come un vero e proprio confine di paragrafo e viene mantenuta Quindi un documento che è stato rotto così:
The quick brown fox
jumps over the lazy dog.
A second paragraph
follows after a blank line.
esce come due paragrafi puliti con una linea vuota tra di loro, piuttosto che una linea lunga Questa è esattamente la forma del testo copiato da un PDF o da un'e-mail avvolta, dove ogni paragrafo è internamente rotto ma i paragrafi sono separati da una linea vuota Lascia l'opzione mantieni-paragrafo-break attiva, che è l'impostazione predefinita, e lo strumento fa la cosa giusta senza ulteriori giocherellate.
Quando desideri veramente tutto su una riga, disattiva l'opzione Ogni nuova riga nell'intero input viene quindi sostituita dal separatore scelto, ovvero il modo in cui trasformi una colonna di valori in un'unica riga separata da virgole.
Quale separatore devo scegliere?
Il separatore è la stringa che sostituisce ogni interruzione di riga rimossa La scelta giusta dipende da cosa rappresentano le righe Ecco come si comportano le opzioni comuni sullo stesso ingresso a tre righe apple, banana, cherry:
| separatore | Risultato | Usalo quando |
|---|---|---|
| Spazio | apple banana cherry |
Le righe sono parole o frammenti di frase che dovrebbero essere letti come prosa |
| nessuna cosa | applebananacherry |
Un singolo token è stato suddiviso tra le righe e deve ricongiungersi senza spazi vuoti |
| Comma | apple, banana, cherry |
Le righe sono un elenco che desideri come valori separati da virgole |
| Semicolone | apple; banana; cherry |
È necessario un separatore di elenchi che non si scontri con le virgole nei dati |
| Tubo | apple | banana | cherry |
Stai costruendo una riga della tabella Markdown o un record delimitato |
| Personalizzato | Qualunque cosa digiti | Hai bisogno di un joiner specifico come - o una scheda |
Lo spazio è l'impostazione predefinita perché è giusto molto più spesso di qualsiasi altra scelta per la prosa ordinaria. I separatori di elenchi diventano propri quando si rimodellano i dati anziché leggerli, ad esempio trasformando una colonna copiata da un foglio di calcolo in un'unica riga che è possibile incollare in una query.
Cosa fanno le opzioni di pulizia?
Due toggle extra ordinano l'output oltre l'unione stessa ed entrambi sono attivi per impostazione predefinita perché quasi sempre aiutano.
Il trim rimuove gli spazi bianchi all'inizio e alla fine di ogni riga prima che le righe siano unite Questo è importante perché il testo copiato porta frequentemente spazi finali che non puoi vedere e rientro all'inizio di una riga che non vuoi mantenere una volta che la riga non è più la sua riga Senza il trimming, quegli spazi vaganti sopravvivono al join e si presentano come spazi scomodi al centro del testo unito.
Gli spazi di collasso vanno un ulteriore passo avanti e riducono qualsiasi serie di due o più spazi o schede fino a un singolo spazio Una volta unite le linee, è facile ritrovarsi con spazi doppi in cui uno spazio finale incontra uno spazio iniziale o in cui il testo originale utilizza spazi per allineare qualcosa. Collassarli ti dà la spaziatura singola che la prosa si aspetta. È importante sottolineare che questo tocca solo spazi e schede, mai le nuove righe che separano i tuoi paragrafi, quindi non annulla l'unione consapevole dei paragrafi.
C'è anche un'opzione rimuovi linee vuote, disattivata per impostazione predefinita, per il caso in cui l'input abbia linee vuote vaganti non si desidera che diventino lacune di paragrafo Con esso acceso, le linee vuote vengono eliminate anziché conservate, il che è utile per ripulire le esportazioni a doppio spazio.
Fare questo nel browser è sicuro?
Sì, e questo è un punto che mi interessa perché è l'intera filosofia di progettazione dietro Toolz.dev. Lo strumento rimuovi interruzioni di riga viene eseguito interamente nel tuo browser utilizzando JavaScript. Il testo che incolli viene elaborato nella memoria della pagina che stai guardando e non viene mai caricato su un server. Non c'è account, nessuna registrazione e nessuna richiesta di rete che trasporta i tuoi contenuti da nessuna parte.
Quello conta più di quanto appaia prima Il testo che le persone hanno più spesso bisogno di rifluire è il testo che hanno copiato da qualche parte privato: un contratto da un PDF, un'e-mail interna, un messaggio del cliente, un blocco di codice Inviare che ad un server remoto per avere le sue newline rimosse sarebbe un assurdo commercio di privacy per un'operazione così banale Poiché il lavoro è locale, non c'è nemmeno un limite di upload, quindi un documento molto grande si rifluisce veloce come uno corto, e lo strumento continua a funzionare anche se la connessione si interrompe dopo che la pagina è stata caricata Se si desidera l'argomento più lungo per cui l'elaborazione lato client è il giusto default per utility come questa, l'ho scritto nel guida alla privacy dei dati e agli strumenti online.
In cosa è diverso da trovare e sostituire?
Puoi, ovviamente, farlo da solo in qualsiasi editor con trova e sostituisci, e per una tantum va bene Il motivo per cui raggiungo ancora lo strumento dedicato si riduce alle tre cose che un manuale trova e sostituisci sbaglia.
In primo luogo, il problema del paragrafo Una semplice sostituzione di newline con spazio appiattisce tutto in una riga, perché non può dire una rottura in-paragrafo dal confine di un paragrafo Per preservare i paragrafi a mano devi fare una danza in due fasi: prima sostituire la doppia newline con un segnaposto, poi sostituire singole newline con spazi, quindi rimettere le doppie newline È infallibile e facile sbagliare.
In secondo luogo, le desinenze a linee miste Se il tuo testo ha una miscela di CRLF, LF e CR, un singolo modello di ricerca e sostituzione ne manca alcuni e rimani a caccia dei ritardatari. Lo strumento normalizza tutti e tre in anticipo.
Terzo, la pulizia degli spazi bianchi Dopo l'unione, di solito si desidera comprimere gli spazi doppi e tagliare le estremità, che è uno o due passaggi di sostituzione più fatto nel giusto ordine Lo strumento piega tutto questo in un'unica operazione con le ginocchiere visibili, in modo da poter vedere esattamente quello che ognuno fa e regolare senza rifare il tutto.
Niente di tutto questo è impossibile a mano È solo lento e abbastanza incline agli errori che uno strumento appositamente costruito si ripaga da solo la seconda o la terza volta che ne hai bisogno La stessa logica è il motivo per cui tengo un intero scaffale di piccole utilità di testo, come il duplicate line remover per la deduzione di una lista e il selezionatrice linea per ordinarne uno, invece di cercare ogni volta uno script di graffio.
Quando vorrei rimuovere tutte le interruzioni di riga?
Ci sono casi reali per far crollare tutto su una singola riga e vale la pena richiamarli in modo da sapere quando disattivare l'opzione del paragrafo.
Quello più chiaro è il rimodellamento dei dati Copi una singola colonna da un foglio di calcolo e arriva come un valore per riga Vuoi che come elenco separato da virgole venga inserito in un SQL IN (...) clausola o un array di configurazione Disattiva le interruzioni di keep-paragraph, scegli il separatore di virgole e hai la tua riga Lo stesso vale per la costruzione di una riga di tabella Markdown con il separatore di pipe o per l'assemblaggio di una stringa di query.
Un altro è ricongiungersi a un token che è stato avvolto Un lungo URL, un blob base64 o una chiave API che è stata divisa tra le righe in un'e-mail deve diventare una stringa continua senza separatore Spegni le interruzioni dei paragrafi, non scegliere nulla come separatore e i frammenti si fondono nuovamente in un singolo token.
La regola pratica è semplice Se stai pulendo la prosa affinché un essere umano possa leggerla, mantieni i paragrafi accesi Se stai rimodellando il testo in un unico valore leggibile dalla macchina, spegnili Poter passare tra i due sullo stesso input, guardando l'aggiornamento del risultato mentre procedi, è il motivo per cui ho incorporato entrambi i comportamenti in un unico strumento anziché in due. E se il testo pulito è diretto da qualche parte continuerai a modificare, il kit più ampio sul sito, dal convertitore case alla contatore parole, riprende da dove si interrompe questo Per l'insieme più ampio di aiuti quotidiani per testi e codici, il Guida agli strumenti di produttività per gli sviluppatori è una buona mappa, e il Guida agli strumenti di codifica copre il lato di formattazione.
Domande frequenti
Come faccio a rimuovere le interruzioni di riga dal testo?
Incolla il tuo testo nello strumento rimuovi interruzioni di riga e mantieni le impostazioni predefinite Sostituisce ogni interruzione di riga all'interno di un paragrafo con un unico spazio e mostra istantaneamente il risultato unito, che puoi quindi copiare Il tutto avviene nel tuo browser.
Come faccio a mantenere i miei paragrafi quando rimuovo le interruzioni di riga?
Lasciare l'opzione mantenere-paragrafo-breaks su, che è l'impostazione predefinita Lo strumento quindi appiattisce solo le singole interruzioni di riga all'interno di ogni paragrafo e mantiene una riga vuota tra i paragrafi, quindi la struttura del testo viene preservata invece di collassare in una riga.
Posso unire tutte le linee in un'unica linea?
Sì. Disattiva l'opzione mantieni interruzioni di paragrafo e l'intero input viene compresso in un'unica riga continua, utile per trasformare una colonna di valori in un'unica riga separata da virgole o per ricongiungere un token suddiviso tra righe.
Qual è la differenza tra un'interruzione di linea e un ritorno in carrozza?
Un'interruzione di riga è il carattere di nuova riga utilizzato su Unix e sui moderni sistemi Mac. Un ritorno a capo è il finale del Mac precedente e Windows li utilizza entrambi insieme come CRLF. Lo strumento li normalizza tutti e tre, quindi qualsiasi testo di origine si unisce allo stesso modo indipendentemente da dove proviene.
Come faccio a sostituire le interruzioni di riga con una virgola invece che con uno spazio?
Scegli il separatore di virgole Ogni interruzione di riga rimossa viene sostituita con una virgola e uno spazio, che trasforma un elenco di righe in un elenco separato da virgole Un'opzione personalizzata consente di utilizzare qualsiasi joiner desiderato, ad esempio una scheda o un trattino.
Perché l'output ha ancora spazi doppi?
Ciò accade quando le linee terminavano già negli spazi prima di essere unite Attiva l'opzione collapse-space per ridurre qualsiasi serie di spazi o schede in un singolo spazio e attiva l'assetto per rimuovere prima gli spazi alle estremità delle linee Entrambi sono attivi per impostazione predefinita.
La rimozione delle interruzioni di riga modifica le parole nel mio testo?
No. Lo strumento rimuove solo i caratteri della nuova riga e, se lo chiedi, riordina gli spazi bianchi Le parole, la punteggiatura e il loro ordine vengono lasciati esattamente come erano, quindi il significato del testo è invariato.
È sicuro incollare testo privato qui?
Sì. Tutta l'elaborazione avviene interamente nel browser con JavaScript Il testo non viene mai caricato o archiviato e lo strumento continua a funzionare senza connessione di rete una volta caricata la pagina, il che lo rende sicuro per contratti, e-mail e codice.



