This repository contains my personal Neovim configuration, optimized for ease of use and minimalistic. The configuration has recently been migrated from Packer to lazy.nvim for improved plugin management.
I can't promise that this will not break on your machine.
.
├── init.lua # Main configuration file
├── lazy-lock.json # Lock file for lazy.nvim
└── lua
├── config
│ ├── init.lua # Initializes core configuration, e.g. editor settings, remaps etc.
│ ├── keymaps.lua # Custom keybindings
│ └── options.lua # Neovim options and settings
└── plugins
├── colors.lua # Color scheme configuration
├── competitest.lua # Competitive programming plugin
├── formatter.lua # Code formatting plugin
├── fugitive.lua # Git integration
├── harpoon.lua # Quick file navigation
├── lsp.lua # Language Server Protocol setup
├── telescope.lua # Fuzzy finder
├── treesitter.lua # Syntax highlighting and parsing
└── undootree.lua # Undo history visualizer
The decision to migrate from Packer to lazy.nvim was made for a few reasons:
- Improved Performance: lazy.nvim offers some nice insights and profiling on top of the lazy loading.
- Simpler Configuration: The switch let me move to keeping each plugin + config in one file is great. I didn't have to dig through which
afterfile I configured which plugin in. - Better Plugin Management: The
.lockfile is great because I literally kept forgetting how to use packer when set up new machines.
This configuration includes the following major components:
- lazy.nvim
- lsp-zero.nvim: Streamlined LSP setup
- mason.nvim: Portable package manager for Neovim
nvim-cmp: Autocompletion plugin LuaSnip: Snippet engine
nvim-treesitter: Provides better syntax highlighting and text objects
- telescope.nvim: Highly extendable fuzzy finder
- harpoon: Quick file navigation, shoutout to theprimeagen.
- vim-fugitive: Git wrapper for Vim
- formatter.nvim: Async formatter plugin
- undotree: Visualizes the undo history
- rose-pine: Color scheme
Feel free to modify any of the configuration files to suit your needs. The modular structure makes it easy to add, remove, or modify plugins and settings.
Typically what you would want to do is follow
Contributions are welcome! If you have any suggestions or improvements, feel free to open an issue or submit a pull request.