π Personal Neovim Configuration
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
π§ Code Quality & Formatting
π Terminal & Utilities
π Dependencies & Helpers
π Configuration Structure
~/.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 :Mason to install language servers
Slow startup : Check :Lazy profile for plugin loading times
Key binding conflicts : Check :checkhealth for conflicts
Use :checkhealth to diagnose issues
Check :Lazy for plugin status
Use :WhichKey to 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! π