Was ist der Unterschied zwischen BufRead und BufEnter?

8

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.

    
Ashish Ranjan 28.02.2013, 07:05
quelle

2 Antworten

8

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.

    
Ingo Karkat 28.02.2013, 08:22
quelle
3

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.

    
romainl 28.02.2013 08:26
quelle

Tags und Links