Basisinformation
Vim zeigt nicht den neuesten Zeilenumbruch im Puffer an, aber tatsächlich platziert Vim EOL beim Schreiben immer am Ende der Datei, da dies für Textdateien in Unix-Systemen Standard ist. Weitere Informationen dazu finden Sie hier . Kurz gesagt, Sie müssen sich keine Gedanken über das Fehlen neuer Zeilen am Ende der Datei in vim machen.
Versuch 1
Mit diesem kleinen Experiment können Sie dieses Verhalten überprüfen. Im Terminal ausführen:
$vim test_test
Geben Sie zum Beispiel nur Zeichen ein 1
und speichern Sie die Datei :w.
Sie haben nur ein Zeichen in der Datei, oder? Eigentlich nein :) Du hast jetzt in deiner Datei 1
und LF
Zeichen. Lassen Sie es uns mit dem hexdump-Dienstprogramm überprüfen:
$hexdump test_test
Ausgabe:
0000000 31 0a
0000002
31
ist ein ASCII-Code für Zeichen 1
und 0a
ein ASCII-Code für nicht druckbare LF
Zeichen, die unter UNIX möglicherweise bereits den Code für das Zeilenende kennen.
Versuch 2
Aber was ist, wenn wir eine Datei öffnen, die eol
am Ende der Datei kein Symbol hat? Lassen Sie es uns auch überprüfen. Lassen Sie uns am Ende eine Datei ohne eol erstellen, zum Beispiel so:
$echo -n "1" > test_without_eol
und dann schauen wir nochmal mit hexdump hinein
$hexdup test_without_eol
Ausgabe wird sein:
000000 31
0000001
Also gibt es hier keine eol
Charaktere. Lassen Sie uns diese Datei in vim öffnen:
$vim test_without_eol
Am unteren Rand des Editors sehen Sie:
"test_without_eol" [noeol] 1L, 1C
Und wenn Sie diese Datei speichern eol
, wird der Charakter automatisch geputtet.
Was können wir dagegen tun?
Wenn Sie das Ende der Datei wirklich sehen müssen. Versuchen Sie, diesen Befehl zu verwenden:
:set listchars=eol:$
Es werden alle eol
Zeichen als $
Zeichen angezeigt.