I am confused between the two events BufRead
and BufEnter
. What is the difference between them?
Some example scenarios where I would choose one over the other would be greatly helpful.
A buffer is the in-memory representation of a file; to edit one, it has to be displayed in a window.
The BufRead
event is triggered after Vim has read the file into its memory. Unless you reload via :edit!
, this only happens once.
The BufEnter
is fired whenever you activate a certain buffer, i.e. when it becomes the buffer the cursor is in. For example when you have split windows that show different buffers, and you move between then. Also in a single window, when you use a command like <C-^>
, :bnext
to change which buffer is currently edited.
BufRead
is triggered after the buffer has been populated with the content of a file.
BufEnter
is triggered after you enter a buffer for editing.
You may use BufNew
, BufRead
or BufAdd
if you want to do something upon the creation of the buffer: setting some global variable, populating a buffer list of your own for use in a script.
You may use BufEnter
when you want to set specific options depending on the filetype or whatever.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With