Why (Neo)Vim is not for you
Note: In this post, when I say Vim, I mean “NeoVim/Vim”.
Should you use Vim as your primary editor? Vim is not beginner-friendly so if you’re a beginner, no… Just kidding :)
Vim is not the only option
Indeed, using Vim is hard at the start. Beginners need to either improve (ie, “git gud”) or use a different editor. Then, should you use Vim as your primary editor if you’ve mastered the basic commands (eg, ciw
, :wq
, zz
, cc
, Y
)? No.
Vim motions/commands do not make Vim better than other editors since most modern editors support Vim motions/commands. Vim emulation may not be 100% perfect, but they work well enough to say that Vim motions/commands are not unique to Vim. Unless you really care about having every Vim motion/command, then Vim motions/commands do not distinguish Vim from other editors.
Vim is a waste of time
There are some killer features that Vim has that not every other editor has:
- buffer/window/tab interface
- autocmds
- Vim9Script/Lua
- Treesitter (in NeoVim)
- The powerful keymaps
- Macros
- Embedded terminal (can run anything not just the shell)
- A vibrant plugin ecosystem with a long history (and there are killer plugins that should be a bullet point here on their own)
Should you use Vim as your primary editor because these features will make you more productive? No. It’s true that using these features may save you time at work. Learning to use these features will definitely cost you more. Here is a relevant quote:
“Using Linux is free if you don’t value your time.” - Socrates
And so it is with Vim. The benefit of IDEs over editors like Vim or Emacs is that you don’t have to sink tens of hours into learning to use most of its features. I have been using Vim for 9 years and have spent around 200 hours (+/- 100 hours) learning it, configuring it, and getting things to work (I am not counting the time when I’m using it to get work done). Vim will never increase my productivity to the point where I will get that time back. Vim will always be a net negative on my productivity.
Vim for fun
Not everyone can become a great artist but a great artist can come from anywhere. - Ratatouille (2007)
Should you use Vim as your primary editor? Are you the type of person who is willing to put in the time to get good at it? Once you get the basics down, will you try various plugins? Set up your LSP? Make your own keymaps? Set options? Read the documentation?
Even if you’re not the type, consider giving it a try.
Because using Vim changes a person. As you configure the editor, it configures you. I didn’t know squat about terminals, shells, scripting, CLIs, etc. but I picked them all up during my Vim journey. I wasn’t the type to read man pages or help pages but I learned to. I’ve even started writing my own plugin.
Once you get into Vim, you’ll find it’s not just an editor. It’s a hobby. There is never an end to ways to improve your coding experience. As you continue to customize your Vim, coding in it becomes more and more pleasant. You enjoy adding new plugins and removing ones you’ve found ways to live without. You start learning lua and code the behaviour of your editor yourself. Vim is a game with truly infinite replayability.
Try using Vim as your primary editor if you want to enjoy coding more (I recommend Neovim).