DEV Community

U G Murthy
U G Murthy

Posted on

2

vim: Buffers, Windows, Tabs - Part 1

Any developer involved in a large software developement project is actively editing multiple source files. There are multiple factors that makes such a developer efficient in the task of editing multiple files. Generally speaking such efficiency depends on:

  • navigating from one active file to another seamlessly
  • and active viewing area

vim provides way to do this using buffers, windows and tabs. In this article we will focus on buffers and windows

Before we get to the details lets understand the terms buffers and windows in vim.

  • A buffer is the in-memory text of the file that was opened using vim. It may be visible or hidden. It is identified by a buffer number and has flags to indicate whether it is current, has been modified or not etc.
  • A window is a view port on a buffer whereas
  • A tab is a collection of windows

When vim opens a file, a buffer is associated with it.

vi server.js

Not every buffer is associated with a file. We will see an example later.

Once in vim. Enter the following command in normal mode

:ls

which will show buffer information as below:

1 %a "server.js" line 1
Press ENTER or type command to continue

  • The integer 1 refers to the buffer number
  • The %a is a flag indicating that this is the active buffer
  • "server.js" the filename and
  • line 1 indicate the current line on which the cursor is positioned

Lets now open two more buffers. While in vim you can open another file by:
:edit config.json

Lets also create a buffer without any file associated with it:
:enew
and list all the buffers using :ls vim command.
1 "server.js" line 1
2 # "config.json" line 1
3 %a "[No Name]" line 1
Press ENTER or type command to continue

Note: buffer number 3 has "no name" and is active.

Switching between buffers is easy. Use :bn where n is buffer number :b2 will switch to buffer 2, makin it active.
Switching between buffers will work if the changes to a buffer is saved.

To view all buffers enter the following command in vim
:ball

You will now see three horizonal windows. You can switch from one to another by followed by any of the arrow keys.

Try :ls to check all buffers are now active as they are all visible.

You can close the the current window by followed by 'c' or by entering :q command. The window closes but the buffer is still there.

for more information on vim buffers enter the following command in vim

:help buffers

Next week look out for more on windows and tabs in Part-2 of this post.

Image of Datadog

How to Diagram Your Cloud Architecture

Cloud architecture diagrams provide critical visibility into the resources in your environment and how they’re connected. In our latest eBook, AWS Solution Architects Jason Mimick and James Wenzel walk through best practices on how to build effective and professional diagrams.

Download the Free eBook

Top comments (0)

Image of Datadog

Create and maintain end-to-end frontend tests

Learn best practices on creating frontend tests, testing on-premise apps, integrating tests into your CI/CD pipeline, and using Datadog’s testing tunnel.

Download The Guide

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay