GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum fügt Vim einen Zeilenumbruch hinzu? Ist das eine Konvention?

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.

Linux
  1. Busy Box Datei zeilenweise lesen?

  2. Eine zeilenorientierte Datei lesen, die nicht mit einem Zeilenumbruch enden darf?

  3. vim:Befehl nicht gefunden

  4. Abschnitt zur ELF-Datei hinzufügen

  5. VIM:wie man unter Ubuntu zur genauen Zeile geht

So lesen Sie eine Datei Zeile für Zeile in Bash

VIM-Editor

Warum shm_open verwenden?

Linux - Prüfen Sie, ob am Ende einer Datei eine leere Zeile steht

Ansible Zeile in Datei auskommentieren

Warum erinnert sich vim zwischen den Läufen nicht an meine Position in einer Datei?