You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This configuration uses functional namespaces to organize keybindings by purpose rather than plugin. For complete Neovim documentation, see :help or visit Neovim Documentation.
This configuration uses functional namespaces rather than plugin-specific ones. Keybindings are organized by what you want to accomplish, not which plugin provides the functionality.
Keybind Namespaces
Namespace
Purpose
Examples
<leader>a*
AI Assistant
Chat, actions, code analysis
<leader>b*
Buffer operations
Format, delete, select, paste over
<leader>c*
Code operations
Format with specific tools, actions
<leader>d*
Diagnostics
Navigate diagnostics, show information
<leader>f*
Find & Search
Files, text, buffers, help, recent
<leader>g*
Git operations
Blame, diff, stage, reset, navigate hunks
<leader>l*
Language Server
LSP-specific actions, workspace management
<leader>n*
Notifications
Show history, dismiss, test
<leader>s*
Snippets & Surround
Create/edit snippets, surround text objects
<leader>t*
Terminal & Tabs
Toggle terminal, tab management
<leader>v*
View & Visual
Dashboard, images, buffer switcher, health check
<leader>w*
Window Management
Split, resize, close windows
<leader>x*
Extended Clipboard
Delete without yank, paste from yank register, system clipboard
<leader>D*
Debug operations
Breakpoints, stepping, DAP UI
Design Principles
Functional over Plugin-based: <leader>bf (buffer format) instead of <leader>cf (conform format)
Consistent Patterns: Similar operations use similar key patterns across contexts
Dual Accessibility: Critical operations often have both namespaced and standard keys (e.g., surround: both sa and <leader>sa)
Descriptive Multi-char: Less frequent operations use longer, more descriptive keys (<leader>vhc for health check)
Mode Awareness: Same key different modes for related operations (visual vs normal mode formatting)
Adding New Keybindings
When adding new functionality:
Identify the primary function (what does it accomplish?)
Choose the appropriate namespace (buffer? code? view? etc.)
Check for conflicts with existing bindings in that namespace
Use consistent patterns with similar operations
Update which-key groups to maintain discoverability
Example: Adding a new code action would go in <leader>c*, a new view operation in <leader>v*.