Blocco note che ignora le interruzioni di riga [duplicato]


35

La maggior parte dei documenti che sto aprendo in notepad.exe in Windows 7 ultimamente, non ci sono interruzioni di riga ... tutto funziona solo insieme. Gli stessi documenti in qualsiasi altro programma, anche visualizzati in anteprima direttamente in Explorer, mostreranno correttamente le interruzioni di riga. questo sta accadendo con molti file .info, .css, .js .. ma non tutti.

Immagino che sia una specie di carattere che codifica le terminazioni di linea unix o qualcosa del genere, ma mi chiedo se c'è qualcosa che posso fare o se qualcun altro ha sperimentato qualcosa di simile e se posso far funzionare correttamente il blocco note. Preferisco il blocco note ++ / altri editor di testo per determinati usi.


Vedi stackoverflow.com/a/50241693/6309 : Blocco note ora supporta \ n (Windows 10, 2 ° trimestre 2018)
VonC

Risposte:


44

Vi sono interruzioni di linea, tuttavia sistemi operativi diversi riconoscono sequenze diverse per le interruzioni di linea.

Blocco note riconosce solo CR, LF (0x0d, 0x0a), mentre altre fonti potrebbero usare solo CR o solo LF.

Non è possibile fare in modo che Blocco note si comporti in modo diverso, quindi l'unica opzione è assicurarsi che il contenuto abbia la sequenza corretta per Blocco note. Nota che il blocco note è l'unico editor con questa limitazione, quindi se il tuo contenuto funziona in Blocco note, funzionerà ovunque.

Un modo semplice per correggere i feed di riga è copiare e incollare il testo in Word, quindi di nuovo nel blocco note e i feed di riga verranno "corretti" nella sequenza CR, LF.


34
aha! sembra un po 'come abbandonare il blocco note potrebbe essere molto più semplice; P
Damon,

1
Assolutamente (imbottitura).
Paul,

3
Penso che sia davvero sconcertante che questa limitazione di vent'anni non sia mai stata risolta ...
Haroldo_OK

1
apri con la parola, salva, quindi apri con il blocco note ... non è necessario copiare e incollare
Gavin Palmer,

2
Buone notizie, la tecnologia sta finalmente arrivando .
mkobit,

9

Taccuino

Se la tua avversione a notepad ++ e ad altri editor di testo è che non fanno parte standard di tutti i sistemi Windows, usa Wordpad. Non è così rudimentale come il Blocco note.

Wordpad leggerà e visualizzerà correttamente i file di testo con terminazioni di linea Unix.

Altro

Se sei contrario a entrambi gli editor di testo one-true, notepad ++ è probabilmente una buona scelta.


il mio prob w / notepad ++ per una visualizzazione / modifica davvero rapida è che mantiene aperti più documenti a meno che non li chiuda specificamente; semplicemente non mi sembra giusto per quell'uso. Posso semplicemente riassociare i file di testo con worpad e assicurarmi che sia nel mio open with...menu.
Damon,

2
Per chiunque legga questi anni dopo, puoi disattivare questa funzionalità nelle preferenze, è qualcosa come "Ricorda la sessione corrente per il prossimo lancio"
Uberfuzzy,

2
@Damon Anche io odiavo questo comportamento, ma puoi disabilitarlo. Devi solo configurare Notepad ++ per non riaprire vecchie sessioni. Vai su Impostazioni -> Preferenze -> Backup. Deseleziona "Ricorda la sessione corrente per il prossimo avvio".
Pezzi di pancetta

Direi che il problema non è tanto quello di voler eseguire il porting dell'editor di testo con Windows, quanto di voler che Windows fornisca almeno un editor di testo decente. Non considererei MS Word o WordPad come "editor di testo", poiché lo scopo di questi strumenti è piuttosto quello di generare report, piuttosto che modificare il testo. Il testo non viene necessariamente con le pagine o deve adattarsi alle pagine. Ancora nel 2018 e Windows 10, non ho trovato nulla di tutto ciò.
patrik,

5

Potresti scrivere un semplice script batch:

@ECHO OFF
TYPE %1 | FIND /V "" >%1.1
MOVE %1.1 %1 > NUL 2>&1
START "NOTEPAD" C:\WINDOWS\SYSTEM32\NOTEPAD.EXE %1
EXIT /B

Salvalo come notepad.batin qualsiasi directory ti piaccia. Quindi, invece di aprire i file .info/ .css/ .jscon Blocco note, aprili con questo script batch. Converte automaticamente tutte le terminazioni di linea Unix in DOS e quindi apre il file con Blocco note.

svantaggi:

  • Ogni volta che apri il programma, aggiunge una nuova riga alla fine del file. (Risolto da @mpag )
  • Apre una finestra del prompt dei comandi (risolto utilizzando STARTalla riga 4)
  • Cambia la data di creazione del file nella data corrente


un'altra raccomandazione. sostituire la startlinea con START "NOTEPAD" "%SystemRoot%\System32\NOTEPAD.EXE" %1generalizzare per quei maniaci che hanno D come unità principale o WinNT per la loro directory di Windows.
mpag,

@mpag Certo, tranne che non sento il bisogno di modificarlo nella mia risposta. Chiunque sia abbastanza strano da non avere la propria directory principale non C:riceverà alcun supporto da parte mia. C:è lo standard da quando DOS è uscito nel 1981.
MD XF,

1
per conservare i timestamp:mkdir %1.dir TYPE %1 | FIND /V "" >%1.dir\%1 robocopy . %1.dir %1 /copy:t >NUL 2>&1 move %1.dir\%1 . > NUL 2>&1 rmdir %1.dir
mpag,

O potresti semplicemente usare questa utility preesistente.
mbomb007,

4

Dato che Notepad ++ è stato menzionato specificatamente nel PO, (almeno ora) ha le impostazioni necessarie sotto:

Modifica -> Conversione EOL -> Formato Windows.


Notepad ++ versione 7.5.9, le opzioni hanno il nome "Windows (CR LF)" in Conversione EOL.
André M. Faria,

3

È necessario modificare il tipo di codifica di interruzione di riga utilizzata nel file.

In Linux esiste un programma chiamato "unix2dos" che può farlo per te. Non sono sicuro che Windows abbia un programma simile, ma sembra che ce ne sia uno simile disponibile qui: http://www.thefreecountry.com/tofrodos/

Ci sono ulteriori informazioni su questo processo in Wikipedia: http://it.wikipedia.org/wiki/Unix2dos dove è possibile ottenere esempi di diversi programmi da riga di comando che possono apportare le modifiche.


se hai installato Sublime, puoi scegliere View->Line endings -> Windowse quindi salvare il file per sovrascriverlo. In questo caso le terminazioni di linea unix si trasformeranno in formato Windows. Se apri questo file salvato in Blocco note, mostrerà le terminazioni di riga correttamente.
Junior M

1

Un'altra cosa che potresti fare: aprire il file in WordPad e salvarlo. Correggerà le terminazioni di linea. Questo è il metodo più veloce.


1

Hai ragione sul fatto che si tratta di un problema con i finali di linea Unix. Esistono diverse terminazioni di riga , ma tre varianti sono le più comuni:

  • "U + 000A LINE FEED" (LF): Unix, Linux, macOS, ecc
  • "U + 000D CARRIAGE RETURN" (CR): macOS classico tra gli altri
  • "U + 000D CARRIAGE RETURN" seguito da "U + 000A LINE FEED" (CRLF): Windows e altri sistemi operativi non Unix / IBM

Le versioni precedenti di Blocco note riconoscono solo CRLF, ma le versioni più recenti supportano CRLF, CR e LF .

Non esiste alcuna impostazione per modificare questo comportamento nelle versioni precedenti di Blocco note, ma è possibile ripristinare il vecchio comportamento nella nuova versione . La maggior parte degli altri programmi tradizionali ha funzionato con tutte e tre le terminazioni di linea per un po 'di tempo, quindi se il tuo contenuto funziona con versioni precedenti di Notepad, dovrebbe funzionare praticamente ovunque.

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.