A powerful and feature-rich Lua-based Neovim configuration.
Built with modern best practices, optimized for performance, and enhanced with completion, diagnostics, formatting, and Git integration.
Uses lazy.nvim as the plugin manager.
Note
This config has been significantly enhanced with professional features including completion, diagnostics UI, auto-formatting, and more.
Fully organized with proper directory structure following Neovim best practices π
--
Leader key: <Space>
Press <Space> and pause to see all available keymaps via which-key.
| Key | Description |
|---|---|
<Esc> |
Clear search highlights |
<leader>sk |
Toggle ShowKeys display |
<C-h> |
Move to left window |
<C-j> |
Move to lower window |
<C-k> |
Move to upper window |
<C-l> |
Move to right window |
<C-s> |
Save file |
<leader>q |
Quit all |
<leader>mp |
Toggle Markdown Render |
<C-/> |
Toggle comment (Visual mode) |
| Key | Command | Description |
|---|---|---|
<leader>ll |
:Lazy |
Open Lazy menu |
<leader>ls |
:Lazy sync |
Sync plugins (install/update/remove) |
<leader>lu |
:Lazy update |
Update all plugins |
<leader>li |
:Lazy install |
Install missing plugins |
<leader>lc |
:Lazy check |
Check plugin health |
<leader>lx |
:Lazy clean |
Remove unused plugins |
| Key | Command | Description |
|---|---|---|
<leader>ff |
:Telescope find_files |
Find files (hidden included) |
<leader>fg |
:Telescope live_grep |
Live grep search in project |
<leader>fb |
:Telescope buffers |
Find and switch between buffers |
<leader>fh |
:Telescope help_tags |
Search Neovim help documentation |
<leader>fs |
:Telescope grep_string |
Grep word under cursor |
<leader>fr |
:Telescope oldfiles |
Open recent files |
| Key | Description |
|---|---|
<leader>h |
Add current file to Harpoon |
<leader>hr |
Remove current file from Harpoon |
<leader>H |
Show Harpoon quick menu |
<leader>1 - <leader>9 |
Jump to Harpoon file 1-9 |
<S-k> |
Navigate to previous Harpoon file |
<S-j> |
Navigate to next Harpoon file |
| Key | Command | Description |
|---|---|---|
<leader>e |
:Neotree toggle |
Toggle file explorer |
<leader>eo |
:Neotree focus |
Focus file explorer |
<leader>er |
:Neotree reveal |
Reveal current file in explorer |
<leader>ef |
:Neotree filesystem |
Show filesystem view |
<leader>eb |
:Neotree buffers |
Show buffers view |
<leader>eg |
:Neotree git_status |
Show git status view |
<leader>en |
Create new file | Create new file in current directory |
Neo-tree Keyboard Shortcuts (inside explorer):
a- Add file/directoryA- Add directoryd- Delete file/directoryr- Rename file/directoryy/c- Copy filename/pathx- Cut filep- Paste filem- Move files- Open file in splitv- Open file in vsplitt- Open file in new tab
| Key | Description |
|---|---|
<leader>mt |
Toggle Mini Map |
<leader>mo |
Open Mini Map |
<leader>mc |
Close Mini Map |
<leader>mf |
Focus Mini Map |
<leader>mr |
Refresh Mini Map |
<leader>ms |
Toggle Mini Map position (left/right) |
| Key | Function | Description |
|---|---|---|
<leader>dp |
pick() |
Interactively pick symbol |
<leader>ds |
goto_context_start() |
Jump to start of current context |
<leader>dn |
select_next_context() |
Select next context/scope |
| Key | Theme | Description |
|---|---|---|
<leader>co |
Osmium | Switch to Osmium theme |
<leader>ct |
Tokyonight | Switch to Tokyonight (default) |
<leader>cts |
Tokyonight Storm | Switch to Tokyonight Storm variant |
<leader>ctn |
Tokyonight Night | Switch to Tokyonight Night variant |
<leader>ctm |
Tokyonight Moon | Switch to Tokyonight Moon variant |
<leader>ctd |
Tokyonight Day | Switch to Tokyonight Day (light) |
<leader>cc |
Chai | Switch to Chai theme |
<leader>th |
Themery | Open Themery theme picker |
| Key | Command | Description |
|---|---|---|
<leader>nh |
:Noice history |
Show notification history |
<leader>nl |
:Noice last |
Show last message |
<leader>ne |
:Noice errors |
Show all errors |
<leader>nd |
:Noice dismiss |
Dismiss all notifications |
<leader>np |
:Noice pick |
Open Noice picker |
<leader>ns |
:Noice stats |
Show Noice statistics |
| Key | Command | Description |
|---|---|---|
<leader>M |
:Mason |
Open Mason package manager |
K |
vim.lsp.buf.hover |
Show hover documentation |
<leader>gd |
vim.lsp.buf.definition |
Go to definition |
<leader>gr |
vim.lsp.buf.references |
Find all references |
<leader>ca |
vim.lsp.buf.code_action |
Show code actions |
| Key | Command | Description |
|---|---|---|
<leader>o |
:Oil |
Open oil file explorer |
<leader>O |
:Oil --floating |
Open oil in floating window |
Oil Keyboard Shortcuts (inside oil buffer):
<CR>- Open/select file<C-s>- Open in vertical split<C-h>- Open in horizontal split<C-t>- Open in new tab<C-p>- Preview file<C-l>- Refresh-- Go to parent directory_- Open current working directory`- Change directory~- Change working directorygs- Change sort ordergx- Open file with external programg.- Toggle hidden filesg?- Show help
| Key | Command | Description |
|---|---|---|
<S-h> or [b |
Prev Buffer | Navigate to previous buffer |
<S-l> or ]b |
Next Buffer | Navigate to next buffer |
<leader>bp |
:BufferLineTogglePin |
Pin/unpin current buffer |
<leader>bP |
Close unpinned | Delete all non-pinned buffers |
<leader>bo |
Close others | Close all other buffers |
<leader>br |
Close right | Close all buffers to the right |
<leader>bl |
Close left | Close all buffers to the left |
Navigation & Files:
ff- Find files |fg- Live grep |fb- Buffers |fh- Helpfs- Grep string |fr- Recent filese- Toggle explorer |eo- Focus explorer |er- Revealen- Create new file |ef- Filesystem |eb- Buffers |eg- Git statush- Add to Harpoon |hr- Remove |H- Harpoon menu |1-9- Jump to file
Themes & UI:
co- Osmium theme |ct- Tokyonight |cts/ctn/ctm/ctd- Variantscc- Chai theme |th- Themery pickermt/mo/mc/mf/mr/ms- Mini map controls
Symbols & Code Navigation:
dp- Dropbar pick |ds- Context start |dn- Next context
Plugins & Tools:
ll- Lazy menu |ls- Lazy sync |lu- Lazy updateli- Lazy install |lc- Lazy check |lx- Lazy cleanM- Mason packages |sk- ShowKeys
Notifications & Messages:
nh- History |nl- Last |ne- Errors |nd- Dismissnp- Noice picker |ns- Stats
Code & Diagnostics:
gd- Definition |gr- References |ca- Code action
Buffers:
bp- Pin buffer |bP- Delete unpinned |bo- Delete othersbr- Delete right |bl- Delete left
Oil (File Editor):
o- Oil explorer |O- Oil floating
| Key / CMD | Mode | Purpose |
|---|---|---|
<C-Space> |
Insert | Trigger completion |
<C-j> / <C-k> |
Insert | Navigate completion suggestions |
<Tab> |
Insert | Select next / Expand snippet |
<S-Tab> |
Insert | Select previous / Jump snippet backward |
<CR> |
Insert | Confirm selection |
<C-e> |
Insert | Close completion window |
<C-b> / <C-f> |
Insert | Scroll documentation up/down |
| Key / CMD | Purpose |
|---|---|
<leader>xx |
Toggle Diagnostics (all) |
<leader>xX |
Toggle Buffer Diagnostics |
<leader>cs |
Toggle Symbols |
<leader>cl |
Toggle LSP Definitions/References |
<leader>xL |
Toggle Location List |
<leader>xQ |
Toggle Quickfix List |
[d |
Previous Diagnostic |
]d |
Next Diagnostic |
| Key / CMD | Purpose |
|---|---|
<leader>cf |
Format Buffer |
| Auto-format | Formats on save (if formatter available) |
Supported Formatters:
- Lua:
stylua - Python:
isort,black - Rust:
rustfmt - Go:
gofumpt,goimports - JS/TS/JSON/YAML/MD/HTML/CSS:
prettier/prettierd
| Key / CMD | Mode | Purpose |
|---|---|---|
]c / [c |
Normal | Navigate to next/previous hunk |
<leader>hs |
Normal/Visual | Stage hunk |
<leader>hr |
Normal/Visual | Reset hunk |
<leader>hS |
Normal | Stage buffer |
<leader>hu |
Normal | Undo stage hunk |
<leader>hR |
Normal | Reset buffer |
<leader>hp |
Normal | Preview hunk |
<leader>hb |
Normal | Blame line |
<leader>tb |
Normal | Toggle line blame |
<leader>hd |
Normal | Diff this |
<leader>hD |
Normal | Diff this ~ |
<leader>td |
Normal | Toggle deleted |
ih |
Operator/Visual | Select hunk (text object) |
| Key / CMD | Purpose |
|---|---|
<leader>gs |
Git Status |
<leader>gc |
Git Commits |
<leader>gb |
Git Branches |
<leader>fgc |
Git Commits (Telescope) |
<leader>fgb |
Git Buffer Commits |
<leader>fgr |
Git Branches (Telescope) |
<leader>fgs |
Git Status (Telescope) |
| Key / CMD | Purpose |
|---|---|
f |
π Find file using Telescope |
r |
π Open recent files |
n |
β Create a new empty buffer |
p |
ποΈ Open projects list (Telescope projects) |
l |
β‘ Open Lazy plugin manager |
u |
β¬οΈ Update all plugins (Lazy update) |
q |
πͺ Quit Neovim |
:Alphaβ Reload dashboard screen:Lazyβ Open Lazy plugin manager:Lazy updateβ Update all installed plugins:Telescope find_filesβ Search files:Telescope oldfilesβ Open recent files:Telescope projectsβ Browse projects (requirestelescope-projects)
- Press
<Space>(leader) and pause to see a popup of available keymaps. - Group headers configured:
<leader>f- +telescope (file search, buffers, grep, etc.)<leader>fg- +git (git integration via telescope)<leader>l- +lazy (plugin manager)<leader>c- +code (code actions, formatting)<leader>x- +diagnostics (trouble diagnostics)<leader>h- +git hunks (gitsigns operations)<leader>g- +git (git telescope)<leader>n- +config (neovim config)<leader>r- +rename (symbol rename)<leader>w- +workspace (workspace management)
- Notes:
- WhichKey shows your existing mappings; it doesn't create them.
- Trigger is set to leader in normal/visual mode with a short delay (200ms).
- Simplified Setup - Focused on essential functionality without complex actions
- Catppuccin Theme Integration - Clean and modern theme with excellent contrast
- FZF Performance - Native FZF integration for faster fuzzy finding
- UI Select - Dropdown interface for enhanced selection experience
- Core Extensions - Symbols, live grep args, and essential pickers
- Safe Extension Loading - Uses
pcallfor graceful fallback if extensions fail
- Managed via
mason.nvimandmason-lspconfig.nvim. - Enhanced with diagnostic signs, hover on cursor, and better UI.
- Ensured/Configured LSPs (5):
lua_ls,pyright,rust_analyzer,gopls,tsserver. - Integrated with nvim-cmp for intelligent completion.
- Auto-formatting via conform.nvim with LSP fallback.
Flash.nvim provides enhanced navigation with search labels, character motions, and Treesitter integration.
| Key / CMD | Mode | Description |
|---|---|---|
s |
Normal/Visual/Operator | Flash jump - Search and jump with labels |
S |
Normal/Operator/Visual | Flash Treesitter - Navigate Treesitter nodes |
r |
Operator | Remote Flash - Flash for operators (d, y, c, etc.) |
R |
Operator/Visual | Treesitter Search - Search within Treesitter nodes |
<c-s> |
Command | Toggle Flash Search - Enable/disable flash in command mode |
- f/t/F/T with labels: When enabled, pressing
f,t,F, orTwill show jump labels automatically - Smart search: Uses exact matching by default for precise navigation
- Multi-window: Treesitter modes support searching across multiple windows
- π― Jump Labels - Visual labels appear on matches for quick navigation
- π³ Treesitter Integration - Navigate code structure using Treesitter nodes
- π Backdrop Highlighting - Dims non-matching text for better focus
- β‘ Fast Navigation - Quick character-based navigation with visual feedback
- π¨ Customizable - Configurable labels, highlights, and behavior
- Press
sto start a flash jump - Type characters to search for matches
- Labels appear on all matches
- Press the label key to jump to that match
- Use
Sfor Treesitter-based navigation (jumps to code structures) - Use
rin operator mode (e.g.,rsthendto delete to a flash match)
Bufferline.nvim provides a modern, snazzy buffer line with tab integration for Neovim.
| Key / CMD | Description |
|---|---|
<S-h> or [b |
Navigate to previous buffer |
<S-l> or ]b |
Navigate to next buffer |
<leader>bp |
Toggle pin current buffer |
<leader>bP |
Delete all non-pinned buffers |
<leader>bo |
Close all other buffers |
<leader>br |
Close all buffers to the right |
<leader>bl |
Close all buffers to the left |
- π¨ Modern Design - Clean, snazzy buffer tabs with icons
- π LSP Integration - Shows diagnostic indicators (errors/warnings) on buffers
- π Buffer Pinning - Pin important buffers to prevent accidental closure
- π― Smart Sorting - Buffers sorted by insertion order after current
- π±οΈ Mouse Support - Click to switch buffers, middle-click to close
- π Hover Preview - Hover over buffers to see full path and information
- π File Icons - Colored filetype icons using nvim-web-devicons
- π Persistent Order - Buffer order persists between sessions
- Separator Style: Slant separators between buffers
- Close Icons: Visual close buttons on each buffer
- Modified Indicator: Shows dot (β) for modified buffers
- Diagnostics: Displays error/warning counts on buffers
- Active Buffer Highlighting: Clear visual indication of current buffer
- Excludes alpha dashboard from bufferline
- Supports sidebar offsets for file explorers (neo-tree, NvimTree)
- Customizable diagnostics indicator
- Hover events enabled for better UX
- Always visible at the bottom (global statusline)
- Shows:
- Mode, branch, diff, diagnostics
- Filename + relative path
- Encoding / fileformat / filetype
- Progress + location
Extra Integrations:
- βοΈ File information β shows encoding, format, and file type
- π Diagnostics β error/warning counts
- πΏ Git branch β current branch name
- nvim-cmp with LSP, buffer, and path completion
- LuaSnip for snippets with VSCode snippet support
- Intelligent completion with icons via lspkind
- Trouble.nvim for beautiful diagnostics UI
- Navigate diagnostics with
[dand]d - Quick access to all error/warning/info/hint lists
- conform.nvim for code formatting
- Auto-format on save
- Support for multiple formatters per language
- LSP fallback if formatter not available
- gitsigns.nvim for Git gutter signs
- Stage/reset hunks inline
- Blame line with
<leader>hb - Navigate hunks with
]c/[c
- Lazy loading for better startup time
- Disabled unused rtp plugins
- Plugin update checker (runs hourly)
- Optimized completion timeout
- Built & tested on Windows 11 (CMD/Terminal) and Linux.
- Enhanced Configuration: Now includes completion, diagnostics, formatting, and Git integration.
- Performance Optimized: Lazy loading, disabled unused plugins, optimized settings.
- Well Organized: Proper directory structure following Neovim best practices.
- Telescope Integration: Streamlined configuration with 4 core extensions (FZF, UI-Select, Symbols, Live Grep Args).
- Theme Integration: Telescope automatically adapts to your current colorscheme.
- Auto-Formatting: Configured for Lua, Python, Rust, Go, JS/TS, JSON, YAML, Markdown, HTML, CSS.
- LSP Fixed: Updated deprecated
ts_lstotsserver.
-
Install dependencies: The config uses Mason for LSP servers, but you may need to install formatters:
styluafor Luablackandisortfor Pythonprettierdorprettierfor JS/TS/JSON/YAML/MDrustfmtfor Rust (usually comes with Rust toolchain)gofumptandgoimportsfor Go
-
First launch: Run
:Lazy syncto install all plugins. -
LSP Setup: LSP servers will be auto-installed via Mason on first use.
-
Completion: Start typing in insert mode and use
<C-Space>to trigger completion. -
Diagnostics: Use
<leader>xxto open Trouble diagnostics panel. -
Formatting: Code auto-formats on save. Use
<leader>cfto format manually.
- General:
<leader>ex(explorer),<leader>nc(config), window navigation - Telescope:
<leader>f*(file search, grep, buffers, etc.) - LSP:
K(hover),gd(definition),<leader>rn(rename),<leader>cf(format) - Completion:
<C-Space>(trigger),<Tab>(select/expand),<C-j/k>(navigate) - Diagnostics:
<leader>xx(trouble),[d/]d(navigate) - Git:
]c/[c(hunks),<leader>hs(stage),<leader>hp(preview) - Lazy:
<leader>ll(menu),<leader>ls(sync),<leader>lu(update)