Vim fügt beim Speichern immer eine neue Zeile am Ende meiner Dateien hinzu und verursacht Fehler in meinen PHP-Skripten.
Wie kann ich vim dazu bringen, diese neue Zeile beim Speichern nicht hinzuzufügen?
Vim fügt beim Speichern immer eine neue Zeile am Ende meiner Dateien hinzu und verursacht Fehler in meinen PHP-Skripten.
Wie kann ich vim dazu bringen, diese neue Zeile beim Speichern nicht hinzuzufügen?
Antworten:
Dies ist keine vollständige leere Zeile, sondern nur eine letzte neue Zeile am Ende der letzten Zeile. Unix-Tools (wie das Erbe von Vim) bestehen darauf, dies hinzuzufügen, während das Windows-Betriebssystem nicht so streng ist. Weitere Informationen hierzu finden Sie unter Warum sollten Dateien mit einem Zeilenumbruch enden?
Leider ist es ziemlich komplex zu verhindern, dass Vim die letzte neue Zeile schreibt. Mein PreserveNoEOL-Plugin kann dies tun. Weitere Informationen zu Ansätzen finden Sie unter VIM Deaktivieren der automatischen Zeilenumbruch am Dateiende .
In neuen Versionen von Vim gibt es dafür endlich eine Option
Vim 7.4.785 fügt die Option 'fixeol' hinzu, die deaktiviert werden kann, um fehlende EOL am Ende der Datei automatisch beizubehalten.
(Siehe Wiki-Seite: http://vim.wikia.com/wiki/Do_not_auto-add_a_newline_at_EOF )
Fügen ~/.vimrc
Sie in dieser Zeile Folgendes hinzu:
set nofixeol
Relaunch vim
, jetzt sollte die neue Zeile am Ende der Datei nicht hinzugefügt werden.
(funktioniert nur seit vim Version 7.4.785)
Haben Sie versucht, die Datei im Binärmodus zu öffnen? Versuchen Sie es vim -b file_name
. Die neue Zeile am Dateiende sollte nicht hinzugefügt werden.
xxd
zu überprüfen, aber es fügt 0a
auch im Binärmodus noch einen Zeilenvorschub ( ) hinzu .
?>
Ausgabe von PHP an den Browser (was den Fehler "Header bereits gesendet" verursacht)? Sie benötigen kein Trailing?>
, und es wird normalerweise empfohlen, es wegzulassen, um genau dieses Problem zu vermeiden.