This is my personal Neovim configuration, organized to be minimal, clean, and fast.
It uses lazy.nvim for plugin management and is structured entirely in Lua.
Most of my bindings are sensible defaults or the recommended mappings from the plugins. I've changed some (like window navigation) to avoid conflicts with tmux, which I highly recommend.
You may also like to look at my tmux configuration.
The configuration is broken into a modular structure for ease of reading and maintenance:
init.lua: The main entry point. It bootstrapslazy.nvimand loads the core settings and plugins.lua/core/options.lua: Contains all globalvim.optsettings.lua/core/keymaps.lua: Defines global keymappings that aren't tied to a specific plugin.lua/plugins/: This directory holds all plugin specifications. Each.luafile in this directory defines a single plugin (or a related group) forlazy.nvimto load.
- Clone this repository.
- Run the
install.shscript to:- Create the necessary
~/.config/nvimdirectories. - Copy all the Lua configuration files to the correct locations.
- Clean up any old
init.vimorvim-plugfiles. - Launch Neovim and run
:Lazy syncto automatically install and update all plugins.
- Create the necessary
This is meant to be a modern Neovim setup. If you are a Vim user or prefer a single-file init.vim setup, check out my old vim config.
This setup is managed by lazy.nvim and organized into individual files within the lua/plugins/ directory.
Below is a catalog of all installed plugins, sorted by category.
These are foundational libraries and core editor enhancements.
| Plugin | Source | Status | Description |
|---|---|---|---|
plenary.nvim |
nvim-lua/plenary.nvim |
Enabled | A core Lua library providing common utilities (telescope, etc.) |
nvim-treesitter |
nvim-treesitter/nvim-treesitter |
Enabled | Provides advanced syntax highlighting and code parsing. |
rainbow-delimiters.nvim |
HiPhish/rainbow-delimiters.nvim |
Enabled | Provides rainbow parentheses, loaded as a dependency for Treesitter. |
Plugins that modify the Neovim user interface, appearance, and status.
| Plugin | Source | Status | Description |
|---|---|---|---|
nvim-tree.lua |
nvim-tree/nvim-tree.lua |
Enabled | A file explorer sidebar. |
nvim-web-devicons |
nvim-tree/nvim-web-devicons |
Enabled | Provides file-type icons (used by nvim-tree and lualine). |
lualine.nvim |
nvim-lualine/lualine.nvim |
Enabled | A feature-rich and configurable statusline. |
todo-comments.nvim |
folke/todo-comments.nvim |
Enabled | Highlights TODO:, FIX:, NOTE:, etc. in your code. |
transparent.nvim |
xiyaowong/transparent.nvim |
Enabled | Makes the Neovim editor background transparent. |
nvim-notify |
rcarriga/nvim-notify |
Enabled | A modern, animated notification system. |
Hypersonic.nvim |
tomiis4/hypersonic.nvim |
Enabled | A UI animation engine for Neovim. |
Plugins focused on finding and navigating files and buffers.
| Plugin | Source | Status | Description |
|---|---|---|---|
telescope.nvim |
nvim-telescope/telescope.nvim |
Enabled | A highly extendable fuzzy finder for files, buffers, grep, etc. |
marks.nvim |
chentoast/marks.nvim |
Enabled | A plugin to better manage and visualize Neovim's marks. |
Plugins for Git integration and version control.
| Plugin | Source | Status | Description |
|---|---|---|---|
vim-fugitive |
tpope/vim-fugitive |
Enabled | The classic and powerful Git wrapper for Vim/Neovim. |
diffview.nvim |
sindrets/diffview.nvim |
Enabled | A powerful diff viewer for Git revisions. |
Plugins related to the Language Server Protocol for code intelligence.
| Plugin | Source | Status | Description |
|---|---|---|---|
mason.nvim |
williamboman/mason.nvim |
Enabled | Manages LSP servers, linters, and formatters automatically. |
mason-lspconfig.nvim |
williamboman/mason-lspconfig.nvim |
Enabled | Bridges mason.nvim with nvim-lspconfig. |
nvim-lspconfig |
neovim/nvim-lspconfig |
Enabled | Provides the default configurations for Neovim's built-in LSP. |
Plugins that enhance the day-to-day text editing experience.
| Plugin | Source | Status | Description |
|---|---|---|---|
vim-visual-multi |
mg979/vim-visual-multi |
Enabled | Provides powerful multiple cursor support. |
Comment.nvim |
numToStr/Comment.nvim |
Enabled | Smart commenting plugin, provides gc and other motions. |
silicon.nvim |
krivahtoo/silicon.nvim |
Enabled | Generates beautiful code screenshots from within Neovim. |
Plugins built for a specific programming language.
| Plugin | Source | Status | Description |
|---|---|---|---|
crates.nvim |
saecki/crates.nvim |
Enabled | Helps manage Rust dependencies in Cargo.toml files. |
Plugins related to artificial intelligence and code companions.
| Plugin | Source | Status | Description |
|---|---|---|---|
codecompanion.nvim |
olimorris/codecompanion.nvim |
Enabled | AI code companion, configured to use Ollama. |
Plugins for note-taking and knowledge management.
| Plugin | Source | Status | Description |
|---|---|---|---|
obsidian.nvim |
epwalsh/obsidian.nvim |
Enabled | Integrates Neovim with the Obsidian note-taking app. |
These plugins are part of the configuration but are currently disabled.
| Plugin | Source | Status | Description |
|---|---|---|---|
instant.nvim |
jbyuki/instant.nvim |
Disabled | A plugin for collaborative editing. |
mini.nvim |
nvim-mini/mini.nvim |
Disabled | A library of minimal, fast, and feature-rich Lua plugins. |
markview.nvim |
OXY2DEV/markview.nvim |
Disabled | A markdown previewer plugin. |