Why have I switched from vim to nvim

24 Feb, 2025 (updated: 03 Mar, 2025)
732 words | 4 min to read | 2 hr, 12 min to write

Hey, folkes! (got it? 😀)

Back in 2022 I wrote my Why I use vim article. In that article I stated that I like nvim, but not ready to switch because (I’m quoting myself):

I “dig” nvim (built-in LSP, lua API), and my setup is compatible with both vim and nvim, but I still prefer vim due to exactly 2 reasons:

  • most of the linux distros are shipped with vim (I have my own reasons why this is a legit argument)
  • vim has encryption which I rely on a lot

And for now, I don’t see nvim is too much superior to vim.

Well, now I see 😄 These are the things that tipped me over to migrate from vim to nvim (in random order):

  • lua
  • built-in LSP client
  • treesitter
  • superior plugins ecosystem

I still can use vim when I need to read my encrypted files, but for coding nvim is a clear winner for me.

Coding experience

I’m always looking for ways to improve my coding experience. Vim was perfect. Neovim is perfect-er.

Lua is superior to Vimscript. I know, that’s subjective. But here’s an objective truth: if Vimscript were better, why isn’t Vim keeping up with Neovim in the plugin world?

Back in 2022, plugin parity was close. Most plugins supported both editors, and I could dip my toes into Neovim by making it read my .vimrc like this:

set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &packpath = &runtimepath
source ~/.vimrc

But now? Lua has supercharged plugin development. The quantity and quality of Neovim plugins are simply better. It’s not just about having more choices; it’s about those choices being good.

And the built-in LSP? It should’ve always been there. We’re talking about an editor built for programmers. Enough said.

Neovim also just feels snappier. Less lag, smoother scrolling, faster responsiveness. It’s subtle but noticeable—like going from SSD to NVMe.

Migration

Migration was painless. I followed this guide by Josean Martinez, cut what I didn’t need, added what I did, and feed my .vimrc into ChatGPT to convert everything to lua.

I also replaced Telescope with FzfLua which is just personal preference, obviously both will work fine, so as mini.pick. So I don’t think there is a right or wrong, any picker I’d pick would do the job, I’m just a long time fzf user.

Thanks to Josean, I actually betrayed (or it feels like I did) my beloved tomorrow night colorscheme. Now I’m using tokyo night which seems very nice to me. Some other colorschemes I never saw before but look great include catppuccin, kanagawa, nightfox and habamax.

I still did fair bit of reading and finding better alternatives to some of the plugins I was used to. My current is nowhere near to be finished (it never is), but this is something I’m quite happy with for now.

My nvim config can be found in my dotfiles here if you are interested. Here is the visual:

nvim

Inspiration and docs

In addition to Josean’s monumental work, I used a bunch of other repositories and blog posts that worth noting.

My favorite plugins so far

  • FzfLua
  • treesitter and treesitter-context
  • gitsigns
  • mini.files

What I gained (and what I lost)

Switching to Neovim wasn’t just about shiny features. It actually made a difference in my day-to-day workflow.

What I gained:

  • 🚀 Speed: Faster startup, smoother performance, especially with large files.
  • 🔮 LSP & Treesitter: Code feels alive. Better highlighting, smarter folding, seamless navigation.
  • 🧠 Lua: Configuration finally feels like programming, not ritualistic incantations.
  • 🧩 Plugins: Access to a wider range of awesome plugins.

What I lost:

  • 🔒 Encryption: Vim still wins here, but I just use it for encrypted notes.
  • 🖥️ Default availability: Most systems ship with Vim, not Neovim. But installing Neovim takes seconds, so… meh.

Final Thoughts

Switching from Vim to Neovim felt like upgrading from a classic car to a modern one. Same driving experience, but with better handling, a smoother ride.

Vim is still great. It’s just… done evolving. Neovim, on the other hand, keeps getting better.