On learning Vim

I use Vim. I like Vim. But for all that's written about learning Vim, most of it is not useful.

Suggestions on learning Vim

  1. Do not put painful restrictions on yourself or shame yourself for using the mouse. Learn enough to get going, and when you find yourself trying to do a certain thing over and over, look up how to do it. (I think Yehuda Katz got this basically right.)
  2. vimtutor is great for learning enough to get going.
  3. Installing a bunch of plugins is often a trap. This is especially true at the beginning, when it's more likely that the thing you're trying to accomplish is doable with vanilla Vim. Dependencies are terrible, even or perhaps especially in contexts like this. Avoid them.
  4. Vim is huge. It has more features than you think it has. Its speed and lack of a persistent menu add to this illusion. This means, among other things, that different users grow into using different subsets of the features, and come to find them fundamental. So: ignore most claims about which features of Vim are the fundamental ones.
  5. Vim doesn't have a persistent menu, but its :help documentation is wonderful.

A note on human progress

Much of the best stuff in computing comes out of small communities characterized by strongly held core beliefs, cultures of learning, and strong adherence to principle. Many could be described as "cult-adjacent." (The domain-driven design community has always struck me this way.) It's tricky to use artifacts from these communities, whether they be pieces of software or mental models, effectively. This is not the only case where the thing is worth learning but the dominant explanations for how and why to learn it are likely to mislead.


More posts about programming


Home page