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. 🙄
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.
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: https://github.com/neovim/neovim
Pingback: vit: That full-screen interface I promised | Inconsolation
Pingback: Links 22/6/2014: New Linux RC, FreeBSD RC | Techrights
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
Pingback: gnus: As close as I could get | Inconsolation
Pingback: howdoi: Because the Internet knows more than you | Inconsolation
Pingback: man: Man, oh man | Inconsolation
Pingback: levee: Even smaller than the average vi | Inconsolation
Pingback: minime: The 9.8K text editor | Inconsolation
Pingback: ttysolitaire: Your reward for sticking around so long | Inconsolation
Pingback: nl: Line numbering, in a variety of ways | Inconsolation
Pingback: nl: Line numbering, in a variety of ways | Linux Admins
Pingback: textadept: “Adept” is apt | Inconsolation
Pingback: ired: Unenthusiastic, as might be expected | Inconsolation
Pingback: notmuch: “Not much” is relative | Inconsolation
Pingback: notmuch: “Not much” is relative | Linux Admins
Pingback: slap: Intuitive and colorful | Inconsolation
Pingback: slap: Intuitive and colorful | Linux Admins
Pingback: Bonus: A dozen more remainders | Inconsolation
Pingback: sshrc: Piggyback your rc across ssh | Inconsolation
Pingback: pup: Playing fetch with HTML | Inconsolation
Pingback: Bonus: K.Mandla’s order of battle | Inconsolation
Pingback: Bonus: K.Mandla’s order of battle | Linux Admins
Pingback: *fte: An epic tale of text editor discovery | Inconsolation
Pingback: fte, efte and *fte: An epic tale of text editor discovery | Linux Admins
Pingback: nodau: Take note | Inconsolation
Pingback: nodau: Take note | Linux Admins
Pingback: wpe and we: Someone’s been reading my mind | Inconsolation
Pingback: wpe and we: Someone’s been reading my mind | Linux Admins
Pingback: vile: That child is an abomination! | Inconsolation
Pingback: ol: One last editor and outliner | Inconsolation
Pingback: Bonus: 2015 in review … and a farewell | Inconsolation