| Key |
Mode |
Purpose |
Esc |
Normal |
Navigate, edit, command mode |
i |
Insert |
Type text |
a |
Insert |
Insert after cursor |
o |
Insert |
Open new line below |
O |
Insert |
Open new line above |
v |
Visual |
Character selection |
V |
Visual Line |
Line selection |
Ctrl+v |
Visual Block |
Block/column selection |
:cmd |
Command |
Run Ex commands |
| Key |
Action |
h j k l |
Left, Down, Up, Right |
w |
Next word start |
b |
Previous word start |
e |
Next word end |
0 |
Start of line |
$ |
End of line |
^ |
First non-whitespace |
gg |
Top of file |
G |
Bottom of file |
5G |
Line 5 |
f<char> |
Find char on line (forward) |
F<char> |
Find char on line (backward) |
; |
Repeat find |
, |
Repeat find reverse |
]f |
Next function (Treesitter) |
[f |
Previous function (Treesitter) |
]] / [[ |
Next/previous section |
Ctrl+d |
Scroll half-page down |
Ctrl+u |
Scroll half-page up |
zz |
Center current line |
| Key |
Action |
i |
Insert before cursor |
a |
Insert after cursor |
I |
Insert at start of line |
A |
Insert at end of line |
o |
Open line below |
O |
Open line above |
dd |
Delete (cut) line |
yy |
Yank (copy) line |
p |
Paste after cursor |
P |
Paste before cursor |
x |
Delete character |
u |
Undo |
Ctrl+r |
Redo |
. |
Repeat last change |
ci" |
Change inside quotes |
ci( |
Change inside parentheses |
ci{ |
Change inside braces |
di" |
Delete inside quotes |
da{ |
Delete a brace block |
> |
Indent |
< |
Outdent |
>> |
Indent line |
<< |
Outdent line |
J |
Join lines |
gw |
Format paragraph (LSP) |
gc |
Comment/uncomment (Comment.nvim) |
gcc |
Comment line |
gci |
Change inner (Treesitter textobject) |
af |
Select around function (Treesitter) |
if |
Select inner function (Treesitter) |
| Key |
Action |
/pattern |
Search forward |
?pattern |
Search backward |
n |
Next match |
N |
Previous match |
* |
Search word under cursor |
Esc |
Clear search highlights |
:%s/old/new/g |
Replace all in file |
:%s/old/new/gc |
Replace all with confirm |
:vimgrep /pattern/ **/* |
Grep project (uses ripgrep) |
| Key |
Action |
:sp |
Split horizontal |
:vsp |
Split vertical |
Ctrl+w h/j/k/l |
Navigate windows |
Ctrl+w = |
Equalize windows |
Ctrl+w q |
Quit window |
tn |
New tab (Space-leader) |
tc |
Close tab (Space-leader) |
tx |
Move current buffer to new tab |
Ctrl+w < |
Shrink window |
Ctrl+w > |
Grow window |
| Key |
Action |
gd |
Go to definition |
gr |
Find references |
gi |
Go to implementation |
K |
Hover documentation |
gD |
Go to declaration |
Space rn |
Rename symbol |
Space ca |
Code action |
Space ff |
Format document |
Space si |
Signature help |
[d |
Previous diagnostic |
]d |
Next diagnostic |
gl |
Line diagnostics (float) |
| Key |
Action |
Ctrl+Space |
Open completion menu |
Ctrl+n / Down |
Next item |
Ctrl+p / Up |
Previous item |
Ctrl+y |
Accept completion |
Ctrl+e |
Close menu |
Ctrl+k |
Signature help |
Sources: LSP, path, snippets, buffer. Fuzzy: Rust-based, typo-resistant.
| Key |
Action |
Space f f |
Find files |
Space f g |
Live grep (ripgrep) |
Space f b |
Buffers |
Space f h |
Help tags |
Space f k |
Keymaps |
<C-d> / <C-u> |
Scroll preview (in Telescope) |
| Key |
Action |
Space g p |
Previous hunk |
Space g n |
Next hunk |
Space g h |
Preview hunk |
Space g s |
Stage hunk |
Space g r |
Reset hunk |
v+Space g s |
Stage visual selection |
v+Space g r |
Reset visual selection |
| Key |
Action |
Space e |
Toggle tree |
Space ec |
Close tree |
<CR> |
Open file/directory |
t |
Open in new tab |
i |
Open split |
s |
Open vsplit |
D |
Delete file |
R |
Rename |
A |
Create new |
| Command |
Action |
:Lazy |
Open plugin management UI |
:Lazy sync |
Sync/update plugins |
:Lazy clean |
Clean unused plugins |
:Lazy health |
Plugin health check |
:Lazy profile |
Startup performance profile |
| Command |
Action |
:q |
Quit |
:q! |
Quit without saving |
:w |
Save |
:wq |
Save and quit |
:e |
Edit/reload file |
:bd |
Delete buffer |
:b# |
Switch to previous buffer |
:ls |
List buffers |
:checkhealth |
Check plugin health |
:LspInfo |
LSP server status |
:TSInfo |
Treesitter info |
:Telescope |
All Telescope pickers |
:noh |
Clear search highlights |
bash, c, javascript, lua, markdown, python, query, rust, vim, vimdoc
| Language |
Server(s) |
| Python |
pyright, ruff |
| TypeScript/JS |
ts_ls |
| Lua |
lua_ls |
| Bash |
bashls |
| YAML |
yamlls |
| Tailwind CSS |
tailwindcss |
| ESLint |
eslint |