Vim is simply a text editor. The first screen-oriented text editor was Vi that created for the Unix environment; it was built for text manipulation. Vim is a popular text editor on Linux, which stands for ‘Vi Improved’. It is the clone of the Vi Unix text editor, and it supports more features than Vi.

You can write notes, reminders, emails in it. Though most of its users use it for editing source code files. What separates it is that while most editors focus on letting you write new text easily, Vim chooses to approach it from a radically different angle. Making the editing of existing text as easy as possible.

Vim emphasizes mouse free interaction and the placement of hand in the home row. Both of which foster interruption free eloquent typing. It has a peculiar feature of modal based editing:

There are 2 major modes in Vim: command mode and insert mode. Command mode deals exclusively with edition of text: yanking, deleting and so on, whereas insert mode simply takes in input from user.

It also has a powerful macro system, composite commands and great support for extensibility through plugins. This makes Vim ahighly advanced, powerful and extensible text editor.

Why Use It?

Efficiency

Core to Vim’s belief is that most people spend more time editing existing text than writing new text. This is especially true for software engineers who are often tasked with working on pre-existing code bases, fixing bugs, refactoring old code bases and adding in new functionality. This means that the best way to improve your efficiency is by making that editing process as fast and easy as possible.

Ubiquity

This is also a pretty cool aspect of Vim, which is that it’s everywhere. It’s available on basically every major platform you can think of. Whether you’re using a Mac, Windows, or some Linux distribution, Vim’s got you covered. In particular, if your day to day work involves working in the ssh’ed terminal sessions, Vim is your only text editor available.

It’s true that Vim’s a powerful text editor and in this post, I haven’t even scratched the surface of what it can do yet. But like all powerful tools, there’s a learning curve to using it.

Getting Started

My recommendation to get started, get your hands dirty with vimtutor . It’s a 25–30 minute vim tutorial which teaches you all the basics. Just type vimtutor in your terminal (on a machine where you have vim installed) to open it. Just get started with it and learn as you go.

FYI: If you want to slowly work your way into the world of Vim then try a Vim plugin for your text editor of choice. All popular text editors have a Vim plugin ( Here’s one for VSCode )