Ich bin verwirrt zwischen den beiden Ereignissen BufRead
und BufEnter
. Was ist der Unterschied zwischen ihnen?
Einige Beispielszenarien, in denen ich eine Auswahl treffen würde, wären sehr hilfreich.
Ein Puffer ist die speicherinterne Repräsentation einer Datei; Um einen zu bearbeiten, muss er in einem Fenster angezeigt werden.
Das Ereignis BufRead
wird ausgelöst, nachdem Vim die Datei in den Speicher gelesen hat. Sofern Sie nicht über :edit!
neu laden, geschieht dies nur einmal.
Der BufEnter
wird ausgelöst, wenn Sie einen bestimmten Puffer aktivieren, d. h. wenn er zum Puffer wird, in dem sich der Cursor befindet. Zum Beispiel, wenn Sie geteilte Fenster haben, die verschiedene Puffer anzeigen, und Sie zwischen diesen wechseln. Wenn Sie in einem einzigen Fenster einen Befehl wie <C-^>
, :bnext
verwenden, um zu ändern, welcher Puffer gerade bearbeitet wird.
BufRead
wird ausgelöst, nachdem der Puffer mit dem Inhalt einer Datei gefüllt wurde.
BufEnter
wird ausgelöst, nachdem Sie einen Puffer zum Bearbeiten eingegeben haben.
Sie können BufNew
, BufRead
oder BufAdd
verwenden, wenn Sie bei der Erstellung des Puffers etwas tun wollen: Setzen Sie eine globale Variable, füllen Sie eine eigene Pufferliste für die Verwendung in einem Skript.
Sie können BufEnter
verwenden, wenn Sie bestimmte Optionen abhängig vom Dateityp oder was auch immer festlegen möchten.
Tags und Links vim