This is a modular and clean Neovim configuration built on top of LazyVim. It follows a structured approach with separated files for options, keymaps, plugins, and LSP setup — making it easy to extend and maintain.
~/.config/nvim/
├── init.lua -- Entry point: loads modular configs
├── lua/
│ └── config/
│ ├── lazy.lua -- Bootstraps lazy.nvim and loads plugins from /plugins
│ ├── options.lua -- Vim options (line numbers, tabs, colors, etc.)
│ ├── keymaps.lua -- Global keybindings
│ ├── autocmds.lua -- Custom autocommands
│ └── lsp.lua -- LSP server setup
│
│ └── plugins/
│ ├── lsp.lua -- LSP and completion plugins
│ ├── treesitter.lua -- Treesitter config
│ ├── ui.lua -- Colorscheme, UI components (NERDTree, Airline, Dashboard)
│ ├── tools.lua -- Telescope, autopairs, git
│ └── ai.lua -- Copilot and AI tools (Parrot, CopilotChat)
-
Clone this config:
git clone https://github.com/YOUR_USERNAME/nvim-config ~/.config/nvim -
Launch Neovim:
nvim
-
Lazy.nvim will install itself and all configured plugins on first run.
-
(Optional) Clean lock file:
rm ~/.config/nvim/lazy-lock.json nvim +Lazy sync
To add a new plugin, simply create a file inside lua/plugins/, or append to an existing one.
Create or edit lua/plugins/tools.lua:
-- ~/.config/nvim/lua/plugins/tools.lua
return {
{
"tpope/vim-surround",
event = "VeryLazy", -- Optional lazy-load
},
}Save and run:
:Lazy syncThis config uses the charleston colorscheme and vim-airline with the deus theme.
To change the theme, edit plugins/ui.lua and update:
vim.cmd("colorscheme YOUR_THEME")Includes both:
CopilotChat.nvim: Chat-based Copilot UXparrot.nvim: Gemini/OpenAI assistant
Just export the following in your shell:
export OPENAI_API_KEY=your_openai_key
export GEMINI_API_KEY=your_gemini_keyInstalled LSP servers include:
- Docker (
dockerls) - JSONNet (
jsonnet_ls) - Python (
pyre) - YAML (
yamlls)
You can extend them in config/lsp.lua.
| Mapping | Mode | Action |
|---|---|---|
<C-n> |
Normal | Toggle Neo-tree file explorer |
<C-p> |
Normal | Telescope: find files |
<leader>fg |
Normal | Telescope: live grep |
<C-i> |
Normal | Toggle invisible characters (:set list!) |
<C-j> |
Insert | Accept GitHub Copilot suggestion |
<leader>aa |
Normal/Visual | Toggle Copilot Chat window |
<C-b> |
Normal/Visual | Toggle Copilot Chat window |
u (in Neo-tree) |
Normal | Go up one directory level |
zh (in Neo-tree) |
Normal | Toggle hidden files |
zz (in Neo-tree) |
Normal | Toggle file tree view |