59 lines
2.9 KiB
Markdown
59 lines
2.9 KiB
Markdown
---
|
||
title: Do you really need tabs/bufferlines in Neovim?
|
||
date: 2023-07-28
|
||
tags:
|
||
- software
|
||
- technology
|
||
---
|
||
|
||
When I was previously using Emacs, one feature I found that was not really
|
||
implemented was tabs for each buffer. I was extremely used to bufferlines
|
||
(which is what people usually mean when they refer to "tab") as I was using
|
||
Neovim before I switched to Emacs and back to Neovim. As I got used to it, I
|
||
found out that I was better off with a buffer list than a bufferline.
|
||
|
||
(Newer) Neovim users tend to prefer bufferlines, while Emacs users tend to
|
||
prefer buffer lists. *This would not be true five years ago*, but it is now. I
|
||
guess the reason for this is that there are more people from tabbed editors
|
||
such as VSCode, Atom, and Sublime migrating to Neovim than to Emacs.
|
||
|
||
As a result, tabs and bufferlines are more popular than buffer lists. Buffer
|
||
lists are often overlooked, not known to many people, and sometimes perceived
|
||
as archaic.
|
||
|
||
However, your workflow might be more appropriately suited towards buffer lists,
|
||
and you just do not know it.
|
||
|
||
![](/assets/bufferlines.png)
|
||
|
||
The main reason for using Neovim for many people is that it’s heavily
|
||
keyboard-centric. It is far easier to navigate Neovim with the keyboard than
|
||
the mouse. However, when using a bufferline, if you are not using a mouse, it
|
||
takes multiple TABs and C-TABs to find the file you want. In a buffer list,
|
||
it’s the same if not better. You can filter through files by typing its name
|
||
and finding it in the buffer list rather than scanning the names of each file
|
||
in the bufferline.
|
||
|
||
A bufferline also takes up the top part of your screen. It is not as big of a
|
||
deal, but as you open more files, it becomes more difficult to navigate. Your
|
||
bufferline is usually always visible showing every tab when you don’t need it.
|
||
A buffer list is only open when invoked, through a command or shortcut. It does
|
||
takes up more space, but only when needed.
|
||
|
||
The way people using bufferlines avoid both of these issues is to close buffer
|
||
tabs once they are finished with working on the file. However, this means you
|
||
have to keep track of what other files you have open and how many tabs are
|
||
open. In a buffer list, you only open a file once, and once you are finished
|
||
with it, you switch to another buffer.
|
||
|
||
An additional pro for buffer lists that may not apply to everyone is its
|
||
ability to preview files. In Neovim, I use Telescope to pick buffers, and it
|
||
includes a file previewer. This makes it easier for me to look across files
|
||
without actually switching to them and having to switch back. A recent use case
|
||
I had was to quickly check what other tags my other posts had.
|
||
|
||
As you can see, buffer lists are an extremely overlooked feature in favor of
|
||
bufferlines/tablines. While users coming from editors that primarily use tabs
|
||
may be more familiar with the bufferline, buffer lists would especially help
|
||
for those whose workflows involve dealing with multiple files at once.
|