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
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.
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).
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:
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.