Notizblock ignoriert Zeilenumbrüche [duplizieren]

36

Die meisten Dokumente, die ich in letzter Zeit in notepad.exe unter Windows 7 öffne, gibt es keine Zeilenumbrüche ... alles läuft nur zusammen. Dieselben Dokumente in anderen Programmen, die auch direkt im Explorer in der Vorschau angezeigt werden, zeigen die Zeilenumbrüche korrekt an. Dies geschieht mit vielen INFO-Dateien, CSS, JS, aber nicht allen.

Ich vermute, es ist eine Art Zeichen, das Unix-Zeilenenden codiert, aber ich frage mich, ob ich etwas tun kann oder ob jemand Ähnliches erlebt hat und ob ich dafür sorgen kann, dass der Notizblock richtig funktioniert. Ich bevorzuge es, ++ / andere Texteditoren für bestimmte Zwecke zu notepad.

Damon
quelle
Siehe stackoverflow.com/a/50241693/6309 : Editor unterstützt jetzt \ n (Windows 10, Q2 2018)
VonC

Antworten:

45

Es gibt Zeilenumbrüche, unterschiedliche Betriebssysteme erkennen jedoch unterschiedliche Sequenzen für Zeilenumbrüche.

Notepad erkennt nur CR, LF (0x0d, 0x0a), während andere Quellen möglicherweise nur CR oder nur LF verwenden.

Sie können nicht festlegen, dass sich Notepad anders verhält. Sie können also nur sicherstellen, dass der Inhalt die richtige Reihenfolge für Notepad aufweist. Beachten Sie, dass Editor der einzige Editor mit dieser Einschränkung ist. Wenn Ihr Inhalt also in Editor funktioniert, funktioniert er überall anders.

Eine einfache Möglichkeit, die Zeilenvorschübe zu korrigieren, besteht darin, den Text in Word zu kopieren und einzufügen und ihn dann wieder in den Notizblock zu kopieren. Die Zeilenvorschübe werden dann in der Reihenfolge CR, LF "korrigiert".

Paul
quelle
36
Aha! ein bisschen klingt wie Notepad Notwasserung viel einfacher sein könnte; P
Damon
1
Absolut (Polsterung).
Paul
3
Ich finde es wirklich verblüffend, dass diese 20-jährige Einschränkung noch nie behoben wurde ...
Haroldo_OK
1
Mit Word öffnen, speichern, dann mit Notizblock öffnen ... kein Kopieren-Einfügen erforderlich
Gavin Palmer
2
Gute Nachrichten, die Technologie ist endlich da .
mkobit
9

Wordpad

Verwenden Sie Wordpad, wenn Sie sich gegen Editor ++ und andere Texteditoren weigern, da diese nicht zum Standard aller Windows-Systeme gehören. Es ist nicht ganz so rudimentär wie Notepad.

Wordpad liest und zeigt Textdateien mit Unix-Zeilenenden korrekt an.

Andere

Wenn Sie beide einwahren Texteditoren nicht mögen, ist notepad ++ wahrscheinlich eine gute Wahl.

RedGrittyBrick
quelle
Mein Problem mit Notepad ++ zum schnellen Anzeigen / Bearbeiten ist, dass mehrere Dokumente geöffnet bleiben, es sei denn, ich schließe sie ausdrücklich. fühlt sich für diese Verwendung einfach nicht richtig an. Ich kann nur Textdateien mit dem Worpad neu verknüpfen und sicherstellen, dass sie sich in meinem open with...Menü befinden.
Damon
2
Für alle, die dies Jahre später lesen, können Sie diese Funktion in den
Einstellungen deaktivieren. Sie lautet
2
@Damon Früher habe ich dieses Verhalten auch gehasst, aber du kannst es deaktivieren. Sie müssen nur Notepad ++ konfigurieren, um alte Sitzungen nicht erneut zu öffnen. Gehen Sie zu Einstellungen -> Einstellungen -> Backup. Deaktivieren Sie "Aktuelle Sitzung für nächsten Start speichern".
Bacon Bits
Ich würde sagen, dass das Problem nicht so sehr darin besteht, dass der Texteditor mit Windows portiert werden soll, sondern dass Windows mindestens einen anständigen Texteditor bereitstellt. Ich würde weder MS Word noch WordPad als "Texteditoren" betrachten, da der Zweck dieser Tools eher darin besteht, Berichte zu erstellen, als Text zu bearbeiten. Text kommt nicht unbedingt mit Seiten oder muss auf Seiten passen. Noch im Jahr 2018 und Windows 10 habe ich nichts davon gefunden.
patrik
5

Sie könnten ein einfaches Stapelskript schreiben:

@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

Speichern Sie dies notepad.batin einem beliebigen Verzeichnis. Dann wird anstelle Ihr Öffnen .info/ .css/ .jsDateien mit Notepad, öffnen Sie sie mit diesem Batch - Skript. Es konvertiert automatisch alle Unix-Zeilenenden nach DOS und öffnet die Datei dann mit Notepad.

Nachteile:

  • Jedes Mal, wenn Sie das Programm öffnen, wird eine neue Zeile an das Ende der Datei angehängt. ( Fixiert von @mpag )
  • Öffnet ein Eingabeaufforderungsfenster (Behoben mit STARTZeile 4)
  • Ändert das Erstellungsdatum der Datei auf das aktuelle Datum
MD XF
quelle
Lassen Sie uns diese Diskussion im Chat fortsetzen .
mpag
eine andere Empfehlung. Ersetzen Sie die startZeile mit START "NOTEPAD" "%SystemRoot%\System32\NOTEPAD.EXE" %1, um die Verrückten zu verallgemeinern, die D als Root-Laufwerk oder WinNT als Windows-Verzeichnis haben.
mpag
@mpag Sicher, außer ich habe nicht das Bedürfnis, das in meine Antwort zu schreiben. Jeder, der verrückt genug ist, dass sein Root-Verzeichnis nicht existiert, C:wird von mir keine Unterstützung erhalten. C:ist der Standard, seit DOS 1981 herauskam.
MD XF
1
um zeitstempel zu erhalten: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
Oder Sie können einfach dieses bereits vorhandene Dienstprogramm verwenden.
mbomb007
4

Da Notepad ++ speziell im OP erwähnt wurde, hat es (zumindest jetzt) ​​die Einstellung, die benötigt wird unter:

Bearbeiten -> EOL-Konvertierung -> Windows-Format.

Huendli
quelle
Notepad ++ 7.5.9-Version, Optionen hat unter EOL-Konvertierung den Namen "Windows (CR LF)".
André M. Faria
3

Sie müssen die Art der Zeilenumbruchkodierung ändern, die in der Datei verwendet wird.

Unter Linux gibt es ein Programm namens "unix2dos", das das für Sie erledigt. Ich bin mir nicht sicher, ob Windows mit einem solchen Programm geliefert wird, aber es scheint hier ein ähnliches Programm zu geben: http://www.thefreecountry.com/tofrodos/

Weitere Informationen zu diesem Vorgang finden Sie in Wikipedia: http://en.wikipedia.org/wiki/Unix2dos. Dort finden Sie Beispiele für verschiedene Befehlszeilenprogramme, mit denen die Änderung durchgeführt werden kann.

rgocs
quelle
Wenn Sie Sublime installiert haben, können Sie View->Line endings -> Windowsdie Datei auswählen und dann speichern, um sie zu überschreiben. In diesem Fall werden Unix-Zeilenenden in das Windows-Format umgewandelt. Wenn Sie diese gespeicherte Datei im Editor öffnen, werden die Zeilenenden korrekt angezeigt.
Junior M
1

Sie können auch Folgendes tun: Öffnen Sie die Datei in WordPad und speichern Sie sie. Es werden die Zeilenenden korrigiert. Dies ist die schnellste Methode.

MD XF
quelle
1

Sie haben Recht, dass es ein Problem mit Unix-Zeilenenden gibt. Es gibt verschiedene Zeilenenden , am häufigsten sind jedoch drei Varianten:

  • "U + 000A LINE FEED" (LF): Unix, Linux, macOS usw
  • "U + 000D CARRIAGE RETURN" (CR): unter anderem klassisches macOS
  • "U + 000D CARRIAGE RETURN" gefolgt von "U + 000A LINE FEED" (CRLF): Windows und andere Nicht-Unix / IBM-Betriebssysteme

Ältere Versionen von Notepad erkennen nur CRLF, neuere Versionen unterstützen jedoch CRLF, CR und LF .

Es gibt keine Einstellung zum Ändern dieses Verhaltens in älteren Versionen von Notepad, Sie können jedoch zum alten Verhalten in der neuen Version zurückkehren . Die meisten anderen Mainstream-Programme funktionieren seit geraumer Zeit mit allen drei Zeilenenden. Wenn Ihre Inhalte also in älteren Versionen von Notepad funktionieren, sollten sie praktisch überall funktionieren.

0b10011
quelle