Die Konvention für Unix-Textdateien ist, dass jede Zeile mit einem Zeilenumbruch abgeschlossen wird und dass Zeilenumbrüche Zeilenabschlusszeichen und keine Zeilentrennzeichen sind.
Wenn Vim einen Puffer als Datei speichert, beendet es jede Zeile mit der Zeilenende-Sequenz für dieses Dateiformat, die für Unix ein Zeilenumbruch ist. Siehe
:help 'fileformat'
Wenn Sie Unix-Textverarbeitungswerkzeuge verwenden, halten Sie sich am besten an diese Konvention. Wenn Sie jedoch keinen Zeilenumbruch am Ende der letzten Zeile einer Datei einfügen müssen, können Sie dies tun. Vim betrachtet solche Dateien als "binär". Siehe
:help 'binary'
:help edit-binary
Vim 8.0 sieht dies nun mit dem fixeol
vor Möglichkeit. Insbesondere, wenn Sie Folgendes tun:
:set nofixeol
dann wird Vim nicht Fügen Sie am Ende der letzten Zeile ein abschließendes Zeilenumbruchzeichen hinzu, falls die Datei noch keines hatte.
Das könnte in ein Dateityp-Plugin oder möglicherweise sogar in Ihren .vimrc
gehen .
(Dies ist eine Verbesserung gegenüber :set binary
weil es nur das letzte Zeilenumbruchzeichen betrifft, während binary
ändert auch eine Reihe anderer Verhaltensweisen, die Sie wahrscheinlich nicht wollen, es sei denn, Sie bearbeiten tatsächlich eine Binärdatei.)
Eine neu erstellte Datei hat standardmäßig immer noch ein nachgestelltes Zeilenumbruchzeichen. Sie können dies ändern (und eine Datei, die bereits einen letzten Zeilenumbruch hat, auf keinen umstellen), indem Sie zusätzlich Folgendes tun:
:set noeol
Das muss für jede zu ändernde Datei spezifisch eingestellt werden:Beim Laden einer Datei in einen Puffer wird immer eol
gesetzt dem aktuellen Status der Datei entsprechen.
Vim fügt nichts hinzu, was Sie nicht selbst hinzugefügt haben.
Ein "newline"-Zeichen ist nicht eine "neue Zeile" und beide Beispiele sind vollkommen normal:
- in der ersten enthält die Datei nur eine Zeile, also erhalten Sie ein "newline"-Zeichen,
- in der zweiten enthält die Datei zwei Zeilen, also erhalten Sie zwei "newline"-Zeichen.