Lassen Sie uns zwei Dateien erstellen:
$ echo -n 'test' > test.txt
$ wc test.txt
0 1 4 test.txt
Die Datei test.txt
enthält keinen nachgestellten Zeilenumbruch.
$ echo 'test' > test_n.txt
$ wc test_n.txt
1 1 5 test_n.txt
Die Datei test_n.txt
enthält den nachfolgenden Zeilenumbruch.
Die beiden oben genannten Dateien unterscheiden sich offensichtlich, aber die Vorschau beider Dateien vim
im Einfügemodus enthält keine Unterschiede:
$ vim test.txt
$ vim test_n.txt
Warum gibt es keinen Unterschied (neue Zeile oder eine besondere Unterscheidung)?
Und was kann ich tun, um ein solches zusätzliches Zeichen vim
im Einfügemodus hinzuzufügen oder zu entfernen ?
Antworten:
vim hat den Modus "eol" (für Zeilenende), um anzugeben , was zu tun ist , wenn in der letzten Zeile der Datei kein Zeilenumbruchzeichen vorhanden ist . Sie können alle Moduseinstellungen in vim (oder einem anderen Programm wie vi) von sehen
POSIX vi nicht über eine Funktion für diesen: Datei entweder die Länge Null ist, oder hat ein Newline. Dies liegt daran, dass POSIX vi nur Textdateien behandelt, bei denen es sich per Definition um Zeilen handelt, die mit Zeilenumbrüchen enden. Bei einer schnellen Überprüfung haben nvi und elvis keine Modi dafür. In meinem Kommentar hatte ich ein Detail von vim vergessen: Im Gegensatz zu vile zeigt eine ": set list" die fehlende Newline nicht ohne weiteres an. Folgendes sehe ich in vim:
während in gemein:
Für jeden Editor können Sie die Datei einlesen, den Modus ändern , z.
und schreiben Sie die Datei aus, um eine neue Zeile für die aktualisierte Datei zu erhalten. Anstatt es direkt anzuzeigen, können Sie die Statuszeile von vim ändern , um diese Informationen anzuzeigen. Standardmäßig scheint dies nicht der Fall zu sein, aber einige Packager haben dies angepasst, z.
In einem der Kommentare wird die Verwendung des "?" Modifikator des
set
Befehls, z.was so etwas zeigen könnte:
aber im Einfügemodus wird das durch ersetzt
Daher scheint die Statuszeile der richtige Ort zu sein, um diese Informationen zu verwalten.
Die Funktionen sind schon eine Weile da:
Das
eol
Feature wurde erstmals in Version 2.4 (Juli 1994) veröffentlicht, wie aus einem Kommentar im Quellcode hervorgeht.Der
newline
Modus von vile erschien im Juli 1993 .( Nvi, elvis, vim und vile alle Griff binären Dateien zusätzlich zu den POSIX vi Text - Dateien).
quelle
:set eol?
überprüfen, ob eol aktiviert oder deaktiviert ist, sodass Sie nicht die gesamte Ausgabe von durchsehen müssen:set all
.