Theo's ʕ•ᴥ•ʔ Park

My Neovim Config Over Time

I started using Vim in 2021 and Neovim in the summer of 2022. Over the past three years, Neovim remained as my main text editor and IDE, and a lot has changed in my config.

I’m literally Neovim

Following the Nordfox migration post, I thought it would be interesting to see how my Neovim changed over the past years.

2022 - early 2023: playground opened (Onedark era)

2023-01-21, editing C++ with clangd

2023-01-21, editing C++ with clangd

2023-02-15, editing the custom command to invoke curl wttr.in and display the result in a small floating window

2023-02-15, editing the custom command to invoke curl wttr.in and display the result in a small floating window

This was when I started to discover the Neovim plugin scene and showed an early sign of addiction to Neovim. At the beginning of 2023, I made my config available in a separate repository called Theovim for my friend Jonathan who wanted to use my config in the school SSH server. And I spent much of that semester adding plugins and implementing features to prove him that it is better than VS Code.

Overall, it looks bad compared to the next two stages, but it certainly had a charm. You can also take a glimpse at the hideous Tmux config I used to rock.

Plugins shown:

Mid 2023 - early 2025: quirky and different? (Tokyonight era)

2023-10-04, screenshot for r/unixporn that I ended up not posting

2023-10-04, screenshot for r/unixporn that I ended up not posting

2023-07-18, comparison to my old config

2023-07-18, comparison to my old config

2023-10-11, the appearance stayed pretty much the same until 2025

2023-10-11, the appearance stayed pretty much the same until 2025

This was when I tried to be quirky and different by writing custom UI components instead of using plugins. And yes, I still do that, but the design language was all over the place, and the internals of the UI components were poorly written and not very maintainable. Still, I learned a lot about Lua during this period.

After all this effort to differentiate my config, I chose to use the Tokyonight colorscheme, which made my config look like any other popular Neovim distro. But damn, that colorscheme is sexy (tokyonight-night, btw).

Plugins shown:

Early 2025 - ??: hopefully productivity focused (Nordfox era)

2025-05-15, in macOS, configuring tabline & winbar, showcasing org-agenda

2025-05-15, in macOS, configuring tabline & winbar, showcasing org-agenda

Over time, I started to feel that my config was not only bloated with so many unnecessary plugins and custom functions, but also because I wrote them as I was learning Lua and Neovim API, many components were poorly written and documented. The final nail in the coffin was the 0.11 update, which brought many native features worth using.

As I was migrating from nvim-lspconfig to the native vim.lsp.config functions, I refactored the configuration, cutting out all the unmaintained and unused code. I chose Nordfox colorscheme as it was easy on my eyes, and I wrote UI components from scratch with maintainability and usability in mind. I also wrote personal help documentation (:h theovim), documenting tips and tricks for Vim features and plugins I have learned over time. This helped me cut out code and comments that I had for the sake of future reference.

Conclusion

I love Neovim, and I may have a problem.

#neovim #lua