When we are using Neovim, we often open several files in a window. Each file correponds to a buffer. How to switch to a buffer quickly?

The native way

In command mode, some of the commands to change buffers are list below:

  • :bfirst: change to first buffer
  • :blast: change to last buffer
  • :bnext: change to next buffer
  • :bprevious: change to previous buffer

Or you can use :b <TAB> to choose from currently opened buffers.

If there are a few buffers, it is easy to switch using the above command. But if we have a dozen of opened buffers, it is cumbersome to use these commands.

Switching buffers using buffer number

Fortunately, we can switch to a buffer quickly if we know its number. To get a buffer’s number, use :buffers command in normal mode. It will print something like:

3      "train.py"                     line 1
4 %a   "main.py"                      line 17
6      "keys.py"                      line 1
7      "utils.py"                     line 1
8 #    "val_CTC.py"                   line 2

The first number is the number corresponding to each buffer. Then we can use NUM Ctrl-6 to go to a particular buffer (replace NUM with actual buffer number). But this is still inconvenient — since we have to find the buffer number first.

A better solution for buffer switching

If you have installed vim-airline,you can configure it to show the buffer number on the top of the window tabline. Just add the following settings to Nvim config file inti.vim:

let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#buffer_nr_show = 1

Restart Nvim and you will find that each buffer has a number on the left of the file name. Then you can easily go to a buffer.

References