vim: Don’t start celebrating just yet

Fans and devotees of vim can finally rejoice: The day of their champion has arrived. But let’s not get all gushy just yet; I have more than one quibble with this half of the text editor holy wars.


Yes, there it is, in all of its 80×24 glory. Up front, I need to mention that, yes, I do use vim on a daily basis, and I will explain why in short order. But let me also be clear that I come to bury vim, not to praise it.

I will give points to vim for using color. And I will award still more points for having an onboard help system. And still more for supporting split screens, and plugins, and a built-in hex editor.


But here is just a smattering from my laundry list of complaints about vim.

  • vim is terrifically obtuse. I have been through more than one tutorial, played the online vim learning game, and read through wiki pages ad nauseum and still I need an A3-sized cheat sheet over my desk, to keep myself from tearing my hair out. The last program that required this much constant keyboard overlay-, rule- and context-checking on my part was the equally confounding Microsoft Flight Simulator 2 for the Commodore 64. And if you remember that, you’ll realize I’m right.
  • vim doesn’t have a learning curve, it has a learning cliff. A newcomer’s first experience with vim is rather like being pulled from the womb — everything is confusing, upside down, messy, smelly, and there’s a group of people slapping you on the bottom screaming “Breathe! Breathe!” while you shriek and sputter, just wanting to go back to a warm quiet comfortable place. Just getting out of vim requires a level of comprehension about vim that is not at all available to beginners. And by default, vim doesn’t help you out much.
  • vim is polarizing. Although I won’t place all the blame for this on vim, since learning either of the two (and a half) major Linux editors by necessity drops you into one camp or another. And both of them (but perhaps not nano) are so esoteric that neither is particularly helpful in learning about the other. You learn one (probably out of necessity, on some forum somewhere) and suddenly you’re standing on one side of a line that you didn’t even know existed. I just needed to edit my .xinitrc, and now I’m part of the vim brigade. Welcome to the party, pal.

Granted, that last complaint is more about the user base than vim or emacs in particular, but I can’t help but wonder how many of the internal divisions (genuine or ingenuine) among *nix users could be redirected from what text editors we use, and focusing on the opportunistic corporate hegemonies that prey on consumer ignorance.

So I’ll go ahead and close off this little rant against vim. It’s far, far from my perfect text editor (and I know what I should be using), but I’d be lying if I said I didn’t use it every day.

Take that as a backhanded compliment then. 🙄

33 thoughts on “vim: Don’t start celebrating just yet

  1. Theodore

    I use only the text editor, colors, and indentation, everything already baked, parts of vim. The keys of ed/ex/vi/m to me are nothing to be worried about. What I’ll never understand is vimscript, because it’s crazy and because i don’t really understand the need of a developer environment, when I have the shell. I’ll understand this need only when i’ll make an oberon/acme with buttons, or an emacs without carpal tunnel syndrome, probably… I’m getting in rant mode so I’ll stop here, someday i’ll spend time on lua scripting, change my keybinds behaviour and switch to textadept.

  2. imgx64

    I think the appeal of Vim comes from the ability to use muscle memory to do common tasks quickly and without thinking. For example, to change the text between quotes, you can use ci” . Emacs probably can do the same things, but using Ctrl-* (and sometimes pressing multiple buttons while holding Ctrl) is nowhere near as convenient as just pressing keys directly on your keyboard.

    But yes, I totally agree with you. I’ve been using vim for about 5 years now and I’m still nowhere as proficient as I wish I was, because of the learning cliff and ridiculous default behavior.

    Somewhat related, there’s a project to make vim more modern here:

  3. Pingback: vit: That full-screen interface I promised | Inconsolation

  4. Pingback: Links 22/6/2014: New Linux RC, FreeBSD RC | Techrights

  5. Artopal

    I still find diakonos to be the best easiest-to-use text editor. Jed seems a bit overkill… (And then again, on a day to day basis I prefer Vim, even if I don’t program at all. :S

  6. Pingback: gnus: As close as I could get | Inconsolation

  7. Pingback: howdoi: Because the Internet knows more than you | Inconsolation

  8. Pingback: man: Man, oh man | Inconsolation

  9. Pingback: levee: Even smaller than the average vi | Inconsolation

  10. Pingback: minime: The 9.8K text editor | Inconsolation

  11. Pingback: ttysolitaire: Your reward for sticking around so long | Inconsolation

  12. Pingback: nl: Line numbering, in a variety of ways | Inconsolation

  13. Pingback: nl: Line numbering, in a variety of ways | Linux Admins

  14. Pingback: textadept: “Adept” is apt | Inconsolation

  15. Pingback: ired: Unenthusiastic, as might be expected | Inconsolation

  16. Pingback: notmuch: “Not much” is relative | Inconsolation

  17. Pingback: notmuch: “Not much” is relative | Linux Admins

  18. Pingback: slap: Intuitive and colorful | Inconsolation

  19. Pingback: slap: Intuitive and colorful | Linux Admins

  20. Pingback: Bonus: A dozen more remainders | Inconsolation

  21. Pingback: sshrc: Piggyback your rc across ssh | Inconsolation

  22. Pingback: pup: Playing fetch with HTML | Inconsolation

  23. Pingback: Bonus: K.Mandla’s order of battle | Inconsolation

  24. Pingback: Bonus: K.Mandla’s order of battle | Linux Admins

  25. Pingback: *fte: An epic tale of text editor discovery | Inconsolation

  26. Pingback: fte, efte and *fte: An epic tale of text editor discovery | Linux Admins

  27. Pingback: nodau: Take note | Inconsolation

  28. Pingback: nodau: Take note | Linux Admins

  29. Pingback: wpe and we: Someone’s been reading my mind | Inconsolation

  30. Pingback: wpe and we: Someone’s been reading my mind | Linux Admins

  31. Pingback: vile: That child is an abomination! | Inconsolation

  32. Pingback: ol: One last editor and outliner | Inconsolation

  33. Pingback: Bonus: 2015 in review … and a farewell | Inconsolation

Comments are closed.