Switching to Neovim v0.12 Nightly and Overhauling My Config
March 15, 2026I recently updated my Neovim version to v0.12 (nightly build) and migrated my entire configuration. My goal was to remove plugins I no longer use and lean on built-in Neovim features as much as possible.
Here are the notable changes:
Plugin manager
I decided to try out the now built-in vim.pack API for plugin management and drop lazy.nvim. I haven’t run into any problems so far, and honestly, I don’t even miss the lazy-loading that lazy.nvim offers. vim.pack is simple and straightforward:
vim.pack.add({
"<repository-url-of-the-plugin>",
-- or, specify source and version
{
src = "<repository-url-of-the-plugin>",
version = vim.version.range("^v0.1.0")
}
})
require("plugin").setup()
Plus it’s one less external plugin to maintain.
nvim-treesitter
I’m now using the main branch of nvim-treesitter. No issues so far — I’m only using the syntax highlighting, folds, and indentation features. You can view it in my dotfiles.
Working with AI
I tried avante.nvim before but eventually ditched it after running into a persistent issue where it would hang whenever it called a tool.
After some searching, I found codecompanion.nvim, and I much prefer it. It opens a plain markdown buffer where I can freely prompt the AI and attach various context — the current buffer, diagnostics, :messages output, and more.
Ditched snacks.nvim
I dropped snacks.nvim and replaced it with mini.nvim alternatives. No strong reason in particular — I just wanted to try them out. The main advantage I’ve found is that mini.nvim has very few dependencies, and I can use individual modules as separate plugins rather than installing one large plugin and disabling the parts I don’t need.
Completion plugin
As much as I wanted to go all-in on built-in Neovim features, the default completion behavior was hard to get used to. After trying it out for a couple of days, I brought back blink.cmp. The specific issue is that switching to normal mode and then typing again doesn’t reopen the completion menu. There might be a way to configure this, but I haven’t figured it out yet.
Overall, I’m pretty satisfied with where things landed, and everything is working smoothly.