Why (Neo)Vim is not for you

3 min read Original article ↗

back


By Sung Kim

Note: Almost everything I say here about Vim also applies to Neovim.

Vim is not for everyone

To reach a basic proficiency at Vim, one must learn many new concepts, acquire the muscle memory to use them, and spend hours configuring their setup before getting work done.

What’s the point? Is it for the killer features that sets Vim apart from other editors?

  • modal editing interface (normal mode, insert mode, visual mode, etc)
  • a unique buffer/window/tab interface
  • autocmds
  • Vim9Script/Lua as a scripting language
  • Treesitter (in Neovim)
  • A powerful keymap system
  • Embedded terminal
  • A vibrant plugin ecosystem with a long history (and there are killer plugins that should be a bullet point here on their own)
  • and more!

The sad reality is that these features make Vim the best editor but also the wrong choice for most people. Each feature can take a long time to learn and without them, there is no point to using Vim over a more mainstream IDE. You would think that learning these features is just part of the up-front cost of using Vim but in reality, the learning never stops. I’ve been using Vim for over a decade and I still keep running into new, relevant concepts and features that change how I work with Vim. I love that about Vim but most people don’t want to spend their time reworking their keymaps or replacing plugins or updating their LSP setup or automating their workflow year after year. I think most people just want their editor to do good enough so they can edit their files.

And they’re right to want it that way. There is no point at which Vim becomes a net positive on your productivity. No matter how many keystrokes you save or how much you optimize your setup, you will never get back the countless hours you poured into learning and tinkering with Vim.

Everyone should try Vim

Not everyone can become a great artist but a great artist can come from anywhere. - Ratatouille (2007)

Then who should use Vim? 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 experiment with new plugins? Make your own keymaps? Read the documentation?

Even if you’re not the type, consider giving it a try.

Because using Vim changes you. 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 documentation but I learned how.

Once you get into Vim, you’ll find it’s not just an editor. It’s a hobby. As you continue to customize your Vim, coding in it becomes more pleasant. Your configuration grows from just setting options and installing plugins to implementing what amounts to entire plugins you wrote for yourself. Vim is a game with truly infinite replayability.

Try using Vim as your primary editor if you want to enjoy yourself (I recommend Neovim).