VIM is awesome— But don’t overdo it

Phil Plückthun
5 min readFeb 1, 2015

I love it and hate it, but what do I even want from it?

I recently got into VIM in the search for the holy grail—faster coding. I liked what I learned, I hated VIM for what it is, but what did I even search for?

What is VIM?

You might ask: What is VIM even? Then I don’t even know how you ended up reading this. Anyway, VIM is a text editor, which is console-based and well known for its extensibility and quick and advanced key combinations.

I will mainly focus on the key combinations in this article, as they allow you, by combining many keystrokes, to do complex tasks and text editing.

Just to give you an overview here: There are different modes for selecting, inserting and modifying text. In each modes there are different commands, which can be combined with motions. Motions moves your cursor in the code. There are motions to go to the next word, the next sentence, a certain character, the end of the document… The list is really long.

Combined with modes and commands you can quickly move and modify your code. I don’t want to dive to deep into this. There are better articles and even books about it.

That’s the theory, but how does it translate to real life scenarios?

I love VIM

One of the nicer VIM interface setups

Even if it’s infamous for being difficult to learn I was able to get pretty “fluent” at it after some days. It really sped up my coding. Suddenly I could type multiple lines of code with ease, correct my typos and flaws in seconds and finally stop using the mouse.

Using the mouse is a menace for coding speed. You’re removing a hand from the keyboard, and? That just interrupts the typing flow. As it is a well-known tip for writers to just keep on writing even if they misspelled something, or made a mistake, it is really essential for developers to keep on coding.

That is speed.

VIM makes this easy. You’ve got enough commands at your fingertips (the keyboard without extra GUIs or interfaces) to do just anything without the mouse.

VIM is infamous, feared and even embodies the devil…

I hate VIM

So why doesn’t every coder and developer use VIM then?

The truth is: It is obsolete. That is just the truth. It is difficult to set up a decent IDE-like interface in VIM. Still, it is a command line program.

But in the face of being limited to mono-space characters and symbols you can really create nice interfaces with it and replicate modern IDE features.

This is overshadowed though, by editors and IDEs like Sublime Text, Textmate, Atom, IntelliJ and many more. They look much better and have a much nicer workflow.

“People don’t know that vi was written for a world that doesn’t exist anymore” —Bill Joy, Author of vi, 1999

VIM is just not as easy to set up, as Sublime Text for example. It is not as nice too. I’d say that in recent appification many much better looking and easier to use text editors popped up. The invention of GUIs didn’t help too. Suddenly you didn’t need to navigate using the keyboard anymore. The mouse really made things more intuitive. So text editors too? Yes, but at what price?

What do I even want from VIM?

There were people that never stopped using VIM until today. There are young people who learned VIM and noticed the advantageous.

But there are people as well, who noticed that VIM is not as nice looking and easy to use as GUI text editors. There are apps like MacVIM to help VIM to make the jump to apps. It wraps VIM to make it a GUI app, but is it as beautiful as for example Sublime Text? Not quite. Almost.

So what do we coders need?

I think we need a big comeback for VIM. Not the NeoVIM-like comeback, a project refactoring VIM code. We need to use the VIM key combinations fusioned with IDEs like SublimeText or Atom. —And we already can!

SublimeText and Atom even provide some basic key combinations to do specific tasks like for example deleting the current line, but is it really easier than an advanced “key combination engine” like VIM, which is even like a consistent standard?

Luckily there are projects to provide VIM key combinations for SublimeText and Atom. So why doesn’t everyone use this and learn VIM? Because it is a hassle?

No, it is a rumour that it is a hassle. Actually you really get used to it quickly. I think many coders and developers just don’t know what a huge gain it is.

I use SublimeText with Vintageous, a vim key emulation, as my daily driver as a coder. My colleague still sighs when he doesn’t understand, that he has to switch to “Insert mode” to just “normally” type. But he also doesn’t notice, that I can correct my code much faster than he can. Maybe he, maybe even you, should try out VIM.

You don’t even need VIM to learn VIM. So what are you waiting for?

As this wasn’t obvious enough: This is a meta-article. It does not represent my own opinion entirely. It is written as is, to motivate people to try out and learn Vim, and Vimmers to try harder to explain Vim.

I’d like to know whether what I think and write made a difference, so please “Recommend” this article to your friends and leave a comment, if you like what you read.

Unlisted

--

--

Phil Plückthun

FRP, React, RxJS & the likes • @FormidableLabs • @reactivate_ldn • Core Contributor of styled-components 💅 • Let’s put some CSS in your JS! 💥 • 🐙🍕☕⚛