Ramblings of an aging IT geek
← Ramblings of an aging IT geek
tooling

leaving vim behind, one config line at a time

Why I'm migrating from Vim to Neovim gradually rather than rewriting my whole config in a weekend.

A mechanical keyboard glowing in a dark room next to a terminal

I've been a Vim person for the best part of fifteen years, and my .vimrc shows it: layers of plugins, half of which I no longer remember the purpose of, and a handful of mappings I'd defend with my life. So the move to Neovim was never going to be a clean-room rewrite. It's a slow erosion.

The plan is deliberately boring. I'm not converting everything to Lua in one sitting. Neovim reads my old Vimscript config perfectly well, so I started by just pointing init.vim at it and changing nothing. That alone bought me the better defaults and the proper terminal buffer, which is most of what I wanted on day one.

From there it's piecemeal. This week I replaced my LSP-via-plugin tangle with the built-in client and nvim-lspconfig. Go and Python now get completion and diagnostics without me babysitting a language server in a separate pane. Next I'll probably look at treesitter, because the regex-based syntax highlighting has always been a polite fiction.

The temptation is to declare config bankruptcy and start fresh with one of the fashionable distributions. I keep resisting. Half my muscle memory lives in those mappings, and a big-bang rewrite is how you end up spending a fortnight yak-shaving instead of working. One line at a time is slower, but I never lose a day to it.