In this post I’m going to share why I like Vim.

I use NeoVim with Tmux which allows me to quickly open new terminal panes (spaces that don’t take up a complete window).

That means I can navigate between different terminals and projects without fuss.

Reasons Why I Like Vim

  1. Familiarity

    I’ve been using Vim as my daily driver for 2 years. I remember loving VS Code 2 years ago.

    Now it’s the opposite. I’ve tried switching back to VS Code for my future day job. And it’s a slog. All my muscle memory for navigating and editing text at the “speed of thought” does not work anymore.

  2. Customizability

    When I use VS Code, I need to customize the key mappings to fit my needs (stay as mouse-less as possible).

    VS Code has a lot of key bindings that conflict with the way I work. Jumping between split windows? You’ll need to define your custom key binding. Jumping between the VS Code terminal and the code? Again, you’ll need to customize.

    At that point, I already spend a lot of time customizing Vim. I can stick to using Vim, because it clearly works (for me).

  3. Live in the Terminal

    Vim is a first-class citizen of the command-line. Vim is quick to fire up, make an edit, and close again.

    See how Patrick Ecker uses Vim and Tmux: ReactiveConf 2016 LT - Patrick Stapfer: A Life on a Commandline

  4. Modal Editing, Language, and Text Objects

    Vim has different modes and that makes the editor very powerful. You have a lot of functionality in normal mode (where you cannot insert text).

    Every key can have more than one function, depending on the editor mode.

    Vim also has a language. For example, d is for deleting things. Vim features text objects, so the program knows if you want to edit text inside brackets, or sentences, etc.
    dw deletes a word.
    When you know text objects and Vim verbs, you can be very precise.

    Here is a video by Drew Neil, author of “Practical Vim”: Vim - precision editing at the speed of thought. Vim - precision editing at the speed of thought