A modern, feature-rich Neovim configuration built with Lazy.nvim plugin manager. This setup provides a powerful IDE-like experience with excellent performance and beautiful UI.
- π¨ Beautiful UI: Catppuccin colorscheme with custom lualine configuration
- π Fuzzy Finding: Telescope integration for files, buffers, and live grep
- π LSP Support: Full Language Server Protocol support with Mason
- π€ AI Assistance: GitHub Copilot integration
- π³ File Explorer: Neo-tree with floating window support
- π Project Navigation: Harpoon for quick file switching
- π§ Code Formatting: Automatic formatting with Conform
- π Debugging & Diagnostics: Trouble integration for better error handling
- π Git Integration: Comprehensive git support with multiple plugins
- β‘ Performance: Optimized for speed with lazy loading
- Neovim >= 0.9.0
- Git
- A Nerd Font for icons
- Node.js (for LSP servers and formatters)
- Make (for telescope-fzf-native)
# Backup existing config (if any)
mv ~/.config/nvim ~/.config/nvim.backup
# Clone this configuration
git clone <your-repo-url> ~/.config/nvim
# Start Neovim - plugins will install automatically
nvim| Key | Description |
|---|---|
<Space> |
Leader key |
jj |
Exit insert mode |
<D-s> / <Cmd-s> |
Save file |
| Key | Description |
|---|---|
<C-h> |
Move to left window |
<C-j> |
Move to down window |
<C-k> |
Move to up window |
<C-l> |
Move to right window |
| Key | Description |
|---|---|
<C-s> |
Vertical split |
<C-s><C-h> |
Horizontal split |
| Key | Description |
|---|---|
<leader>1 |
Toggle Neo-tree sidebar |
<leader>e |
Toggle Neo-tree float |
| Key | Description |
|---|---|
<leader>sf |
Find files |
<leader>sg |
Live grep |
<leader>sw |
Search current word |
<leader><space> |
Find buffers |
<leader>? |
Recent files |
<leader>/ |
Search in current buffer |
| Key | Description |
|---|---|
gd |
Go to definition |
gr |
Go to references |
K |
Show hover information |
<leader>ca |
Code actions |
<leader>vrn |
Rename |
<leader>fo |
Format code |
<leader>vh |
Show diagnostics float |
| Key | Description |
|---|---|
<leader>H |
Add file to harpoon |
<leader>h |
Toggle harpoon menu |
<leader>1-9 |
Jump to harpoon file 1-9 |
| Key | Description |
|---|---|
<leader>bc |
Toggle bookmark |
<leader>bl |
List bookmarks |
<leader>bj |
Jump to bookmark |
| Key | Description |
|---|---|
<Tab> |
Next buffer |
<S-Tab> |
Previous buffer |
<leader>w |
Pick buffer to close |
<C-w> |
Close other buffers |
- catppuccin/nvim - Beautiful, soothing pastel theme
- nvim-lualine/lualine.nvim - Blazing fast statusline
- akinsho/bufferline.nvim - Snazzy buffer line
- nvimdev/dashboard-nvim - Fancy start screen
- nvim-tree/nvim-web-devicons - File icons
- nvim-telescope/telescope.nvim - Fuzzy finder over lists
- nvim-telescope/telescope-fzf-native.nvim - FZF sorter for telescope
- nvim-neo-tree/neo-tree.nvim - Modern file explorer
- ThePrimeagen/harpoon - Quick file navigation
- ggandor/leap.nvim - Lightning-fast motions
- LintaoAmons/bookmarks.nvim - Persistent bookmarks
- neovim/nvim-lspconfig - LSP configurations
- williamboman/mason.nvim - LSP server manager
- williamboman/mason-lspconfig.nvim - Mason-lspconfig bridge
- saghen/blink.cmp - Fast completion engine
- L3MON4D3/LuaSnip - Snippet engine
- rafamadriz/friendly-snippets - Snippet collection
- zbirenbaum/copilot.lua - GitHub Copilot integration
- folke/which-key.nvim - Key binding help
- windwp/nvim-autopairs - Auto close brackets
- numToStr/Comment.nvim - Smart commenting
- stevearc/conform.nvim - Code formatting
- mfussenegger/nvim-lint - Linting support
- folke/trouble.nvim - Diagnostics list
- nvim-treesitter/nvim-treesitter - Syntax highlighting
- lewis6991/gitsigns.nvim - Git decorations
- tpope/vim-fugitive - Git commands
- rbong/vim-flog - Git branch viewer
- f-person/git-blame.nvim - Git blame information
- akinsho/toggleterm.nvim - Terminal management
- folke/lazydev.nvim - Development utilities
- nvim-lua/plenary.nvim - Lua utilities
- MunifTanjim/nui.nvim - UI components
- echasnovski/mini.icons - Icon provider
- kkharji/sqlite.lua - SQLite bindings
- stevearc/dressing.nvim - Better UI elements
- GeorgesAlkhouri/nvim-aider - AI development assistant
~/.config/nvim/
βββ init.lua # Main entry point
βββ lazy-lock.json # Plugin version lockfile
βββ lua/
β βββ core/ # Core configuration
β β βββ settings.lua # Vim settings and options
β β βββ keybindings.lua # Custom key mappings
β β βββ lazy.lua # Lazy.nvim setup
β βββ plugins/ # Plugin configurations
β βββ autopairs.lua
β βββ blink.lua
β βββ bookmarks.lua
β βββ bufferline.lua
β βββ colorschema.lua
β βββ conform.lua
β βββ copilot.lua
β βββ dashboard-nvim.lua
β βββ figitive.lua
β βββ gc.lua
β βββ git-blame.lua
β βββ gitsigns.lua
β βββ harpoon.lua
β βββ leap.lua
β βββ lsp.lua
β βββ lualine.lua
β βββ mason.lua
β βββ neo-tree.lua
β βββ nvim-lint.lua
β βββ telescope.lua
β βββ toggleterm.lua
β βββ treesitter.lua
β βββ trouble.lua
β βββ which-key.lua
βββ README.md # This file
Create a new file in lua/plugins/ or add to an existing file:
return {
{
"author/plugin-name",
config = function()
-- Plugin configuration
end
}
}Edit lua/core/keybindings.lua to add or modify key mappings:
local function map(m, k, v)
vim.keymap.set(m, k, v, { silent = true, noremap = true })
end
map("n", "<your-key>", "<your-command>")Edit lua/plugins/colorschema.lua to switch themes or modify the current one.
- Icons not displaying: Install a Nerd Font and configure your terminal
- LSP not working: Run
:Masonto install language servers - Slow startup: Check
:Lazy profilefor plugin loading times - Key binding conflicts: Check
:checkhealthfor conflicts
- Use
:checkhealthto diagnose issues - Check
:Lazyfor plugin status - Use
:WhichKeyto see available key bindings - Check individual plugin documentation for specific issues
This configuration is open source and available under the MIT License.
Enjoy coding with Neovim! π