Unix-Editoren mögen viund vimwerden immer newlines ( \n) am Ende jeder Zeile einfügen - insbesondere einschließlich der letzten Zeile. Befindet sich eolin der letzten Zeile kein Zeilenende ( ), ist dies eine ungewöhnliche Situation, und die Datei wurde mit Sicherheit nicht mit einem Standard-UNIX-Editor erstellt.
Diese ungewöhnliche Situation wird Ihnen durch die [noeol]Markierung im vimEditor angezeigt. Andere Editoren haben wahrscheinlich ähnliche Flags und Benachrichtigungen.
In emacs, bewegen Sie den Cursor an das Ende der Datei (letzte Zeile, nach dem letzten Zeichen) und ausführen kill-line, erhalten Sie tatsächlich das Löschen von oben eol.
Yeow_Meng
1
Und einige Dienste jammern und beschweren sich und starten aufgrund von Fehlern nicht, weil es bei EOF keine EOL gibt
ivanivan
20
Dass die letzte Zeile in der Datei keine neue Zeile enthält (\ n)
@ Bon Ami: Einige Programme benötigen beim Lesen Ihrer Textdatei \ndas Zeilenende, um sie als abgeschlossene Zeile zu betrachten (mit einem nachgestellten Zeilenumbruchzeichen). Das folgende Beispiel zeigt eine Datei , die wie eine aussehen kann komplett auf einen flüchtigen Blick in einen Texteditor Linie, aber wctut nicht condider es als Linie: printf "x">"file-no-newline"; wc -l <"file-no-newline"- Outpute ist: 0 .. die noeol ist nur eine visuelle Hilfe Sie das wissen zu lassen , Status ..
Peter.O
2
Dies bedeutet, dass das Betriebssystem, unter dem Sie die Datei anzeigen, das Zeilenende der Datei nicht erkennen kann (sofern überhaupt welche vorhanden sind). Dies passiert manchmal, wenn Sie Dateien zwischen Betriebssystemen verschieben (z. B. von MS nach * nix os).
Wenn die Datei in vim einen Windows-Wagenrücklauf hat ^M", können Sie dies mit dem folgenden Befehl beheben: in vim do:
:%s/^M/\r/g
Bedeutung:
% => select the whole buffer
s => Search
/^M/ => find Windows Carrage return.
/\r/ => Replae it with *nix carrage return
Es ist 'NO EOL' - keine Anzeige für das Zeilenende . Sehr hilfreich, wenn Sie am Ende eine sehr große Datei öffnen (> 1 GB). Vim versucht das alles in einer Linie zu ziehen. Diese Anzeige hilft mir, die Datei schnell zu schließen, bevor mein Betriebssystem kaputt geht.
Antworten:
Unix-Editoren mögen
vi
undvim
werden immer newlines (\n
) am Ende jeder Zeile einfügen - insbesondere einschließlich der letzten Zeile. Befindet sicheol
in der letzten Zeile kein Zeilenende ( ), ist dies eine ungewöhnliche Situation, und die Datei wurde mit Sicherheit nicht mit einem Standard-UNIX-Editor erstellt.Diese ungewöhnliche Situation wird Ihnen durch die
[noeol]
Markierung imvim
Editor angezeigt. Andere Editoren haben wahrscheinlich ähnliche Flags und Benachrichtigungen.quelle
emacs
, bewegen Sie den Cursor an das Ende der Datei (letzte Zeile, nach dem letzten Zeichen) und ausführenkill-line
, erhalten Sie tatsächlich das Löschen von obeneol
.Dass die letzte Zeile in der Datei keine neue Zeile enthält (\ n)
quelle
\n
das Zeilenende, um sie als abgeschlossene Zeile zu betrachten (mit einem nachgestellten Zeilenumbruchzeichen). Das folgende Beispiel zeigt eine Datei , die wie eine aussehen kann komplett auf einen flüchtigen Blick in einen Texteditor Linie, aberwc
tut nicht condider es als Linie:printf "x">"file-no-newline"; wc -l <"file-no-newline"
- Outpute ist:0
.. die noeol ist nur eine visuelle Hilfe Sie das wissen zu lassen , Status ..Dies bedeutet, dass das Betriebssystem, unter dem Sie die Datei anzeigen, das Zeilenende der Datei nicht erkennen kann (sofern überhaupt welche vorhanden sind). Dies passiert manchmal, wenn Sie Dateien zwischen Betriebssystemen verschieben (z. B. von MS nach * nix os).
Wenn die Datei in vim einen Windows-Wagenrücklauf hat
^M"
, können Sie dies mit dem folgenden Befehl beheben: in vim do:Bedeutung:
Hinweis: In Mac OX
^M is ctl+v && ctrl+m
quelle
Es ist 'NO EOL' - keine Anzeige für das Zeilenende . Sehr hilfreich, wenn Sie am Ende eine sehr große Datei öffnen (> 1 GB). Vim versucht das alles in einer Linie zu ziehen. Diese Anzeige hilft mir, die Datei schnell zu schließen, bevor mein Betriebssystem kaputt geht.
quelle