Why Atom Can't Replace Vim

Why Atom Can't Replace Vim by Mike Kozlowski discusses why we love Vim:

Vi is fundamentally built on command composability. It favors small, general-purpose commands that can be combined with objects to compose larger commands. By contrast, Emacs and its philosophical descendants (including Sublime Text and Atom) use monolithic, special-purpose commands.

And composability is about more than just power, it's also learnability and consistency. The command for copying text in Vim is y. Do you know how to copy to the end of the line/file/paragraph? Of course you do: It's y$, yG, and y} respectively. The command for increasing the indent is >, so you instantly know >$, >G, and >}. Convert to lowercase is gu, so... sure enough: gu$, guG, gu}.

This idea of composability relates to the grammar Vim uses for commands. Once you understand the grammar, you unlock a lot of editing patterns that would otherwise seem inscrutable. To get a feel for Vim's grammar, the legendary Your problem with Vim is that you don't grok vi post on Stack Overflow is worth reading, and most of Vimcasts as well:

There's something beautiful about these rules, which define Vim's grammar for composing operations. Vim allows you to define custom operators and motions (as well as text objects). I love the fact that user-defined operators and motions plug right in to Vim's grammar, just as though we were extending our vocabulary with new verbs and nouns. Read my essay on sharpening the saw for a few concrete examples.

blog comments powered by Disqus