Ich habe eine Datei mit vim
Ubuntu geöffnet und am unteren Bildschirmrand wird Folgendes angezeigt:
"file.py" [noeol] 553L, 16620C
Was bedeutet noeol
das?
Ich habe eine Datei mit vim
Ubuntu geöffnet und am unteren Bildschirmrand wird Folgendes angezeigt:
"file.py" [noeol] 553L, 16620C
Was bedeutet noeol
das?
Antworten:
Unix-Editoren mögen vi
und vim
werden immer newlines ( \n
) am Ende jeder Zeile einfügen - insbesondere einschließlich der letzten Zeile. Befindet sich eol
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 im vim
Editor angezeigt. Andere Editoren haben wahrscheinlich ähnliche Flags und Benachrichtigungen.
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
.
Dass die letzte Zeile in der Datei keine neue Zeile enthält (\ n)
\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, aber wc
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:
:%s/^M/\r/g
Bedeutung:
% => select the whole buffer
s => Search
/^M/ => find Windows Carrage return.
/\r/ => Replae it with *nix carrage return
Hinweis: In Mac OX ^M is ctl+v && ctrl+m
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.