Neovim Configuration for 2025
Since I am two months into 2025 without any new posts I thought it would be nice to jot down some notes on how my Neovim configuration management evolved in the last year.
For longtime Vim → Neovim users like me who prefer a simple and sane way to manage their configuration, I highly recommend kickstart.nvim as a starting point. It provides a minimal yet functional configuration that is easy to understand, making it ideal for those who don’t want to commit to a pre-built template without knowing what it does.
My Configuration and Workflow
- I maintain my own fork of kickstart-modular.nvim.
This is essentially
kickstart.nvim
, but structured into directories rather than a singleinit.lua
, making it easier to manage. - I apply my customizations in a single commit.
- I periodically pull in upstream changes, allowing me to stay up-to-date with core plugins while maintaining my modifications.
Additional Plugins
Currently, I use seven additional plugins on top of the base kickstart.nvim
setup:
Plugin | Description |
---|---|
bufferline.nvim | Displays open buffers as tabs at the top of the session. I find this helpful for keeping track of my open buffers but there are a lot of different methods to do that. |
clipboard-image.nvim | Useful for quickly inserting images into Markdown blog posts via copy/paste. |
cmp-spell | Adds spell-checking suggestions to nvim-cmp auto-completion. |
karen-yank | Prevents deletions (D , dd ) from copying content into the paste register, making yanking more explicit. |
key-analyzer.nvim | Provides a quick overview of key mappings. |
rose-pine.nvim | My current colorscheme. |
vim-fugitive | Git integration for Neovim. |
Customizations
In addition to plugins, I have several personal customizations that enhance my workflow:
- Backups: I enable backups using
set backup
, which has saved me a few times. - Buffer Navigation: I map
<Tab>
and<Shift-Tab>
to switch between buffers, which pairs well withbufferline.nvim
. - Additional Completion Sources: I add
hrsh7th/cmp-buffer
tocmp.lua
to enable auto-completion of words from open buffers. - Mini.nvim Enhancements: While
kickstart.nvim
includes somemini.nvim
plugins, I also addmini.indentscope
,mini.icons
, andmini.files
. - Telescope Optimization: I modify
telescope.lua
so that when inside a Git repository, searches start from the repository root. - Relative Line Numbers: I set
vim.opt.relativenumber = true
for relative line numbering. - Mouse Behavior: I disable visual selection with the mouse, as I find it more disruptive than helpful.
This setup has worked well for me so far, if you would like to see the configuration in its entirety, it can be viewed here.