I understand this is going to be a somewhat divisive topic. Vim is something akin to Marmite. You either love it or you hate it. Only that’s not entirely true. It’s more like a one-sided relationship. Vim is something exciting and unapproachable. You start to work with it. Devote hours and hours of your time to learning its quirks and oddities, and in the end, how are you repaid?
You get to use a text editor.
For the less technically minded people, let’s start our discussion with text editors. What are they. Most of you can press your windows key and type “notepad” and bring one up. To shamelessly pilfer from Wikipedia:
A text editor is a type of computer program that edits plain text. Such programs are sometimes known as “notepad” software, following the naming of Microsoft Notepad. Text editors are provided with operating systems and software development packages, and can be used to change files such as configuration files, documentation files and programming language source code.
If I might append a little something: Text editors are the most basic of systems on your PC. And lots of nerds swear by them. It’s why there’s such a hot debate over which editor is the best, and everyone has their own horse in the race. A race in which there is no prize.
I’m somewhat controversial amongst most nerds for this very reason: I like my text editors simple. Intuitive. On my servers, I use Nano. Nano is a text editor that comes packaged with most linux distributions that is comically simple to use. Any idiot can pick it up and use it within minutes. The learning curve is non existent.
Vim is the other end of the scale. It is a fully featured editing environment, right there in your command line. Which is great. Unless you’ve never used it before (or it’s any time after 1993.) As a text editor, the first thing I want to do is edit text. When you load a file in Vim, however, the first thing you have to do is figure out how to pull up some kind of help interface to figure out how to switch to insert mode. Because this text editor defaults to you not being able to enter text. Which is weird.
The whole program follows this staggering pattern of lacking intuition or basic sense. Every simple task Nano is difficult with Vim. Even the people who like the program agree. They talk about how difficult the program is to use. How you can do so many things, if you just spend hundreds hours becoming proficient in the program. In a text editor. I became proficient in Sublime Text 3 (my current choice of text editor) in about 8 minutes. It all begs one question.
Why? Why bother? Why go to such extents to learn what is, essentially, notepad on steroids?
The answers I have received have been somewhat unimpressive. It’s mostly a hipster-like mentality of wanting to use a tool that is different. Subjecting oneself to something unpleasant for the sake of standing out from a crowd. Vim users wear their obsession like a badge of honor. Personally, I feel it makes them the nerd equivalent of a reality TV show star. Desperate for attention. Using an overly complicated tool to separate themselves when nothing else can.
On the program itself: The saying is that Vim has a steep learning curve. I disagree. Vim has an attitude problem. Vim was released in 1991, based on a port of an Amiga editor, by people who couldn’t see the importance that UIs were going to play in the evolution of computers. It makes no compromises for usability, because it hails from an era where such things were not required. Now it sits on all linux distributions. Out of date. Out of use. And yet, like a cantankerous old asshole who sits on his lawn yelling at everyone passing by; too stubborn to die.
I’m not going to post this anywhere. I know it would bring the Vim subreddit out in force, waving around their pitchforks. Fortunately those pitchforks would have overly-long handles, too short tines and be needlessly difficult to use, but they’d still swear blind that it’s the best damn pitchfork, if only you spend a few weeks of your life learning how to use it.
Disagree? Feel free to press the dislike button below. (In my original blog I had like/dislike buttons that said did nothing other than flash a message saying “Your opinions do not matter. Not yet implemented here. :D)