I've been using neovim for the past few years. I was excited about what it was doing for the code base, the possibilities of lua plugins, async enhancements, and overall driving forward of core vim features through the competition. Not too long ago I was really excited for the release of the milestone neovim 0.5.0. It introduced some awesome language server support stuff, treesitter which promised better syntax highlighting possibilities, and a few more cool things. I was so excited I was using an early 0.5.0 build before it moved to the master branch.
But as I moved into 0.5.0 I found my well organized and documented vimrc configuration (init.vim in neovim's case) was lacking core functionality necessary for these new cutting edge features. I started bolting on example lua code from repositories related to language servers, lsaga, and many more. I built a house of cards quickly and understood very little of what was happening. I pushed forward eager to explore the new cool stuff.
It's been a few months now and the excellent code navigation and restructuring features were indeed cool. My goto-definition jumps worked better than ctags ever allowed before. I had some really cool pop-up window integration that looked fantastic and used the embedded terminal for executing builds and tests with excitement and abandon. There was just one problem.
I didn't grok any of it.
I've been using vim since 1998. I know my way around its features pretty well. Yeah there's still plenty left to explore, but it's fringe stuff that I don't really need much. With neovim I was facing the reality that my daily drivers were doing things I didn't understand based on copied configurations that barely worked and needed constant patching. Forum discussions suggested I should abandon my init.vim completely and rewrite my whole configuration in lua to get with the modern times.
Instead I deleted neovim and all of its configuration. I'm back on vim 8.1 with my previous setup. It's simple. I know what every single line of my configuration is for. I've curated my plugins with care and regularly trim and try subtle alternatives.
I don't have the fancy language server support anymore. I could set it up with some work in vim, but I don't really need it. Ale & vim-polygot do what I need. My setup is more portable for it. I also feel clean once again, like I've tidy'd up my bedroom. A place for everything and everything in its place.
I don't regret my experimentation with neovim and I can't say definitively that I'll never return. For now, though, I'm happy keeping it simple.
Originally Published 2021-10-23 at:
If you have questions or thoughts to add please send me a link to your response.