I hate Vim. There, I said it. Go on, get your pitchforks out and run me right out of Nerdville.

Why do I hate Vim? Quite simply, it's editing and navigation paradigms go completely against any natural intuition I have gained from modern (read: came out after 1994) computer applications. It is a clean break from the usage mindset I have with every piece of software I use that doesn't run in a terminal session. Because of this, I need to deal with constant context switches when going back and forth between Vim and every other app on my computer. I guess I'm just not smart enough, because these mental mode switches aggravate me and make coding feel like a chore.

Now, it stands to reason that Vim is not bad software. It's actually very good for the role that it needs to fill (terminal based text editor). I simply don't like it. To say that it's "bad" is subjective, and it would be immature to rant about something like that. Objectively, however, Vim simply does not integrate with GUI based operating systems well at all. The biggest offender is select/copy/paste support. It's there, but it sucks. You can't just do control/command C/V to move text around, you have to do some inane incantation with the Y and P keys and possibly a number. A huge annoyance for me is line navigation. When I want to go to something that's visually below my cursor, I instinctively want to hit the "down" key. In Vim, that may get me to where I expect to go, or it may send me anywhere from the line below to the end of the document. It really just depends on how long the current document line is and if it's wrapping or not. There is absolutely a logical rhyme and reason for this, but the problem is that knowing where my cursor is going to wind up is not intuitive or consistent. I don't want to think about it, I just want it to work.

Quite literally, Vim was made for another time. Nobody will argue this. The conceptual separation of Normal mode and Insert mode is silly, but it's not a deal breaker. But take a step back and look at the 50 million keyboard commands for doing common tasks (like jumping to the bottom of a document similar to the Page Down key). When you think about it, these key bindings have no symbolic value, are semantically meaningless, and mostly just random. "W" to go forward a word, and "B" to go back. Why are these keys not physically next to each other, are you fucking kidding me? In what manner is Vim's navigation system intuitive? It's not, and if you don't realize it, then you just can't see the forest from the trees. I can come up with a massive list of arbitrary key bindings and silly justifications for them too, it doesn't exactly take a stroke of genius. I simply don't see how mastering one arbitrary system makes you more 1337 than mastering one that is more symbolically straightforward.

And yes, I know that every gripe I have with Vim has been solved with a plugin, and there's an option to change every conceivable aspect of usage, and that MacVim and Gvim and Whatevervim totally fix everything and make all my dreams come true. But you know what? I don't want to spend all day tweaking my editor and stroking my nerd boner, I just want to fucking code.

I grant you, there are many situations where Vim's insanity is justified. If you are in an SSH session and that's all you have to work with, then sure - Vim is totally awesome. Additionally, Vim has some functions (view splits!) that I consider to be a godsend. But overall, using it is hell. What do I prefer? TextMate if I'm on a Mac, and that's only because Notepad++ is, sadly, only available for Windows. I believe that Notepad++ provides the perfect mixture of usability and functionality.

I'm not going to try and tell anyone what editor to use or not use, we are all entitled to our opinions. I'm just tired of feeling dumb because I don't "get" Vim.
Shared publiclyView activity