ViM

I don’t have much to say about ViM other than:

  • You should be using this if you intend to edit a lot of text.

  • You should follow the tutorials and read the manual the whole way through several times.

Any time you invest in learning ViM and getting good at it is time well spent and will quickly multiply itself.

For instance, if I learn a command in ViM that saves me a fraction of a second when editing text, over the course of weeks I quickly earn back the amount of time spent learning that trick.

Getting Started with ViM

Unfortunately ViM cannot be used everywhere. You can’t use it to edit text in the command line prompt. You can’t use it to fill in text fields in your web browser. And I’ve yet to see ViM on a phone (not that it would be useful without a real keyboard!)

But for the vast majority of the time you are editing files that can be edited with ViM, especially if you get out of your IDE bubble and introduce yourself to your OS and treat it rightly. Many IDEs also allow you to choose your own editor, and ViM can be used as a plugin to these AFAIK.

Once you’ve installed ViM, you can go to the ViM documentation to learn how to use it: https://www.vim.org/docs.php

The :help command is most useful. You need to learn how to navigate the help docs, but it is not hard.

As with anything worth learning, you need to make time to invest in yourself to learn things, and you can’t expect people to hand you things on a silver platter. You’ll also need to practice and memorize things you find most useful. Over time, they will become part of your muscle memory and so you won’t even know how you do it anymore. That is the way it has become with me and ViM, so it’s really hard for me to tell people what I am doing as often I don’t even know what it is I am doing – my fingers just do it!

ViM Alternatives

Lots of alternatives to ViM exist, and they have excited fanboys. I am not one of them. ViM works perfectly fine and is perfectly suited to the task. I see no reason to accept an alternative that lacks features or stability.