Können Sie Vim zwingen, eine Leerzeile am Ende einer Datei zu zeigen?
-
05-07-2019 - |
Frage
Wenn ich eine Textdatei in Editor öffne, zeigt es eine leere Zeile, wenn es einen Wagenrücklauf am Ende der letzten Zeile ist der Text enthält. Doch in Vim ist es nicht diese Leerzeile zeigen. Eine andere Sache, die ich bemerkt habe ist, dass der Editor Vim einen Wagenrücklauf in die letzte Zeile standardmäßig erstellt (auch wenn es es nicht zeigen). Ich kann sagen, denn wenn ich eine Datei in Editor öffnen, die in Vim erstellt wurden, ist es am Ende der Datei eine leere Zeile zeigt.
Wie auch immer, kann ich mit diesen beiden Differenzen leben, aber ich frage mich, ob es eine Option in Vim, die Sie dieses Verhalten umschalten kann.
Danke
PS - GVim 7.2
[Update]
Würde das Sinn machen, auf dem Server Fehler stattdessen sein?
[Update 2]
ich das anders formulieren werde ... Ich muß wissen, wenn es ein Wagenrücklauf am Ende der einzelnen Zeile Datei (Editor zeigt eine zusätzliche Zeile ohne Text, mit Vim kann ich nicht sagen). Dies ist aufgrund eines Progress-Programm, das eine Textdatei liest (erwartet eine einzige Zeile, aber mit einem Wagenrücklauf) und analysiert den Text für einen bestimmten Zweck. Wenn es kein Wagenrücklauf ist, Fortschritt behandelt die Linie, als ob es null ist.
[Behelfslösung Lösung] Eine Möglichkeit, die ich gefunden habe, um sicherzustellen, ist ein Wagenrücklauf (aber stellen Sie sicher, dass ich nicht ein zweites hinzufügen) ist sicherzustellen, dass ich das Ende der Zeile schreiben Option eingeschaltet (: set EOL) und führen Sie dann nur ein schreiben / speichern. Dies wird ein Ende der Zeile in der Datei setzen, wenn es nicht bereits vorhanden ist. Ansonsten ist es nicht einen neuen hinzufügen.
Lösung
:help endofline
wird erläutert, wie Sie vim aus Hinzufügen einer zusätzlichen Newline stoppen könnte.
Andere Tipps
Es scheint, dass vim Newline als Leitungsabschluss behandelt, während Notizblock behandelt es als Zeilentrenner: von http://en.wikipedia.org/wiki/Newline
Es gibt auch einige Verwirrung, ob newlines beenden oder getrennte Leitungen. Wenn ein Newline wird als Separator, wird es keine Newline sein nach der letzten Zeile einer Datei. Das allgemeine Konvention auf den meisten Systemen ist eine neue Zeile auch nach dem letzten hinzufügen Zeile, das heißt, Neue-Zeile als eine Linie zu behandeln, Terminator. Einige Programme haben Probleme, die letzte Zeile eines Verarbeitungs Datei, wenn es nicht Newline beendet. Im Gegensatz dazu, Programme, die erwarten Neue-Zeile als Separator verwendet wird, eine abschließende Newline als Ausgang interpretiert eine neue (leere) -Linie. Dies kann zur Folge haben eine andere Zeilenzahl wird berichtet aber für die Datei ist anders im Allgemeinen harmlos.
Wenn ich mich richtig erinnere, auf Unix-y-Systemen eine Textdatei mit einem Newline beendet werden muss.
Eine nützliche Vim Option ist
set list
Es wird Ihnen helfen, alle Zeilenende Zeichen zu sehen (und möglicherweise andere allgemein unsichtbar Zeichen). So werden Sie diese letzte endofline anzeigen können direkt in Vim und nicht nur in den Editor.
Wenn Sie die Datei in VIM öffnen sollte die Statuszeile sagen [noeol]
nach dem Dateinamen. Das ist also ein Indiz. Wie Manni sagte, können Sie dies sowohl durch Einstellen der endofline
Option ändern aus und die binary
Option. Sie können diese als Standardeinstellungen in einer .vimrc
-Datei festgelegt.