Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between BufRead and BufEnter?

Tags:

vim

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.

like image 520
Ashish Ranjan Avatar asked Feb 28 '13 07:02

Ashish Ranjan


2 Answers

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.

like image 89
Ingo Karkat Avatar answered Nov 17 '22 05:11

Ingo Karkat


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.

like image 30
romainl Avatar answered Nov 17 '22 04:11

romainl