Neovim Keymaps
Leader key = Space
File & Buffer
| Key |
What it does |
<leader>w |
Save the current file |
<leader>q |
Quit Neovim |
<leader>c |
Close the current buffer |
<leader>bc |
Save all buffers, then close everything except the current one |
Navigation
| Key |
What it does |
e |
Jump to end of line |
s |
Jump to first non-blank character of line |
cb |
Go back to previous location (like browser back) |
cf |
Go forward (undo a cb) |
Windows & Splits
| Key |
What it does |
<leader>v |
Open a vertical split |
<leader>h |
Open a horizontal split |
Ctrl+h |
Move focus to the left window |
Ctrl+j |
Move focus to the window below |
Ctrl+k |
Move focus to the window above |
Ctrl+l |
Move focus to the right window |
Ctrl+Up |
Make current window shorter |
Ctrl+Down |
Make current window taller |
Ctrl+Left |
Make current window narrower |
Ctrl+Right |
Make current window wider |
File Tree (NERDTree)
| Key |
What it does |
<leader>n |
Show/hide the file explorer sidebar |
Fuzzy Finder (Telescope)
| Key |
What it does |
<leader>ff |
Search for files by name |
<leader>fg |
Search for text inside files (live grep) |
<leader>fb |
List all open buffers |
<leader>fh |
Search Neovim help topics |
Inside a Telescope window:
| Key |
What it does |
Ctrl+n |
Move to next result |
Ctrl+p |
Move to previous result |
Ctrl+d |
Delete the selected buffer |
Ctrl+c |
Close Telescope |
Clipboard
| Key |
What it does |
<leader>y (visual) |
Copy selected text to system clipboard |
<leader>p |
Paste from system clipboard |
Search
| Key |
What it does |
<leader>/ |
Clear the search highlight |
LSP (Code Intelligence)
| Key |
What it does |
gd |
Go to the definition of the symbol under cursor |
K |
Show documentation for the symbol under cursor |
<leader>rn |
Rename the symbol under cursor across the project |
gr |
Show all references to the symbol (opens in Trouble panel) |
<leader>f |
Format the current file using the LSP |
<leader>a |
Show code actions (quick fixes, refactors) |
<leader>d |
Show hover documentation (same as K) |
| Key |
What it does |
<leader>kk |
Toggle comment on the current line |
<leader>k + motion |
Comment/uncomment everything the motion covers (e.g. <leader>k3j comments 3 lines down) |
<leader>k (visual) |
Comment/uncomment the selected lines |
<leader>bb |
Toggle block comment on the current line |
<leader>b + motion |
Block comment everything the motion covers |
<leader>b (visual) |
Block comment the selection |
Diagnostics Panel (Trouble.nvim)
Shows all LSP errors and warnings — across every file the language server knows about, like the Problems panel in VSCode.
| Key |
What it does |
<leader>xx |
Toggle workspace diagnostics (all errors across the project) |
<leader>xd |
Toggle diagnostics for the current file only |
<leader>xq |
Open the quickfix list in Trouble |
<leader>xl |
Open the location list in Trouble |
Inside the Trouble panel:
| Key |
What it does |
j / k |
Move to next / previous item |
Enter or Tab |
Jump to that error in the file |
x |
Open the file in a horizontal split |
v |
Open the file in a vertical split |
p |
Preview the error location without leaving Trouble |
r |
Refresh the list |
za |
Toggle fold for a file group |
zm |
Collapse all file groups |
zr |
Expand all file groups |
q |
Close the Trouble panel |
Terminal
| Key |
What it does |
<leader>t |
Open/close the terminal (toggles a split at the bottom) |
<leader>t (inside terminal) |
Close the terminal |
Testing (vim-test)
| Key |
What it does |
tn |
Run the test nearest to the cursor |
tf |
Run all tests in the current file |
ts |
Run the entire test suite |
tl |
Re-run the last test that was run |
tv |
Open the test file that was last run |
Markdown Preview
| Key |
What it does |
<leader>mp |
Open a browser preview of the current Markdown file |
<leader>ms |
Stop the Markdown preview |
<leader>mf |
Keep the preview scrolled to where your cursor is |
<leader>mt |
Toggle the Markdown preview on/off |
Utilities
| Key |
What it does |
<leader>sr |
Search and replace (interactive prompt) |
<leader>cf |
Create a new Java file |