Good article. One quibble:<p>"But of course, Vim isn’t perfect. ...[Y]ou need to install a half-dozen third-party plugins (and a third-party plugin manager at that) to get basic functionality working."<p>I've been using vi and now Vim since 1980. I don't use any third-party plugins, so I don't need a plugin manager. I do almost no customizing. I have much more than "basic functionality" with a bare-bones Vim install. Why? Because Vim is installed on pretty much every *nix system. When I ssh into a server I can't afford to be helpless because my favorite plugins and scripts and key bindings aren't there.<p>I can skip hours of "on-boarding" because I'm happy to work with bare Vim and other command-line tools on OSX or Linux. I don't need to spend a day getting Eclipse configured or setting up a bunch of other stuff just to edit and build code.<p>Emacs is almost, but not quite, as ubiquitous as Vim. I use Vim because I learned vi a long time ago and have never wanted to put that much effort into learning another text editor.
The atomic "noun verb" structure of vim's commands is in fact highly versatile. For me, being able to operate on, search across, or navigate my text by <i>structure</i> is absolutely key.<p>It's not far from the Unix philosophy in general -- we get simple tools and send nouns (data) through them on pipes. Not always, but frequently. I recognized this distinction particularly from working on other systems which didn't have this facility: VMS, MVS, and of course Microsoft and Apple systems prior to OS X.<p>You rarely have the specific tool you want, but you can readily build it up out of components via pipes and some shell scripting. As opposed to the other systems where you rarely have the specific tool you want ... and you need a systems programmer to write it for you.