A clean, modular Neovim configuration for Neovim 0.11+.
- Neovim >= 0.11
- Git
- Nerd Font (for icons)
- ripgrep (for Telescope live grep)
- Node.js (for some LSP servers)
- Rust toolchain via rustup
- rust-analyzer:
rustup component add rust-analyzer
# Backup existing config
mv ~/.config/nvim ~/.config/nvim.bak
# Clone this config
git clone <your-repo-url> ~/.config/nvim
# Start Neovim (plugins will auto-install)
nvim~/.config/nvim/
├── init.lua # Entry point
├── ascii-art.txt # Dashboard header (editable)
├── lua/
│ ├── config/
│ │ ├── lazy.lua # Plugin manager bootstrap
│ │ ├── options.lua # Editor settings
│ │ ├── keymaps.lua # Key mappings
│ │ ├── cmp.lua # Completion config
│ │ └── lsp/
│ │ ├── init.lua # LSP entry point
│ │ ├── lua.lua # Lua LSP config
│ │ └── rust.lua # Rust LSP config
│ └── plugins/
│ ├── init.lua # Plugin aggregator
│ ├── theme.lua # Catppuccin colorscheme
│ ├── telescope.lua # Fuzzy finder
│ ├── lsp.lua # LSP plugins
│ ├── cmp.lua # Completion plugins
│ ├── treesitter.lua# Syntax highlighting
│ └── ui.lua # UI components
| Plugin | Description |
|---|---|
| lazy.nvim | Plugin manager |
| catppuccin | Colorscheme |
| telescope.nvim | Fuzzy finder |
| nvim-treesitter | Syntax highlighting |
| nvim-lspconfig | LSP configuration |
| mason.nvim | LSP installer |
| nvim-cmp | Autocompletion |
| lualine.nvim | Statusline |
| bufferline.nvim | Buffer tabs |
| alpha-nvim | Dashboard |
| Key | Action |
|---|---|
<Space> |
Leader key |
| Key | Action |
|---|---|
<leader>ff |
Find files |
<leader>fg |
Live grep |
<leader>fb |
Buffers |
<leader>fh |
Help tags |
| Key | Action |
|---|---|
gd |
Go to definition |
K |
Hover documentation |
<leader>rn |
Rename |
<leader>ca |
Code action |
[d |
Previous diagnostic |
]d |
Next diagnostic |
| Key | Action |
|---|---|
<Tab> |
Next suggestion |
<S-Tab> |
Previous suggestion |
<CR> |
Confirm selection |
<C-Space> |
Trigger completion |
Edit ~/.config/nvim/ascii-art.txt with your ASCII art.
Create a new file in lua/plugins/ (e.g., lua/plugins/myplugin.lua):
return {
"author/plugin-name",
config = function()
-- your config here
end,
}Create a new file in lua/config/lsp/ (e.g., lua/config/lsp/python.lua):
vim.lsp.config("pyright", {
-- config here
})
vim.lsp.enable("pyright")Then add require("config.lsp.python") to lua/config/lsp/init.lua.
| Command | Description |
|---|---|
:Lazy |
Open plugin manager |
:Lazy sync |
Update plugins |
:Mason |
Open LSP installer |
:LspInfo |
Check LSP status |
:TSUpdate |
Update Treesitter parsers |
MIT



