These are built in and not all appear as :map entries.
Movement and Navigation
Key
What it does
hjkl
Move cursor left/down/up/right
wbe
Next word / previous word / end of word
0^$
Start of line / first non-blank / end of line
ggG
Top of file / bottom of file
{}
Previous/next paragraph
%
Jump between matching pairs
<C-o><C-i>
Jump back / jump forward
Editing Operators
Key
What it does
d{motion}
Delete by motion
c{motion}
Change by motion
y{motion}
Yank by motion
pP
Paste after / before
u<C-r>
Undo / redo
.
Repeat last change
Text Objects
Pattern
What it does
ciw
Change inside word
ci"ci'ci)
Change inside quote/quote/paren
di(da(
Delete inside/around parens
vi{va{
Select inside/around braces
Search and Replace
Key
What it does
/pattern?pattern
Search forward/backward
nN
Next/previous match
*#
Search word under cursor forward/backward
:%s/old/new/g
Replace in file
Windows and Tabs
Key
What it does
<C-w>v<C-w>s
Vertical/horizontal split
<C-w>q<C-w>o
Close split / close other splits
<C-w>w
Cycle windows
:tabnewgtgT
New tab / next tab / previous tab
Built-in Neovim Default Mappings Active in Your Setup
These come from Neovim runtime defaults and are active now.
Mode
Key
What it does
Normal
[d / ]d
Previous/next diagnostic
Normal
[D / ]D
First/last diagnostic in buffer
Normal
<C-w>d
Show diagnostic float
Normal
[q / ]q
Previous/next quickfix item
Normal
[Q / ]Q
First/last quickfix item
Normal
[l / ]l
Previous/next location list item
Normal
[L / ]L
First/last location list item
Normal
[b / ]b
Previous/next buffer
Normal
[B / ]B
First/last buffer
Normal
grn
LSP rename
Normal/Visual
gra
LSP code action
Normal
grr
LSP references
Normal
gri
LSP implementation
Normal
grt
LSP type definition
Normal
gO
LSP document symbols
Conditional / Buffer-Local Mappings
LSP Attach (when an LSP is attached to the buffer)
Mode
Key
What it does
Normal
grn
Rename symbol
Normal/Visual
gra
Code action
Normal
grr
References (Telescope)
Normal
gri
Implementations (Telescope)
Normal
grd
Definitions (Telescope)
Normal
grD
Declaration
Normal
grt
Type definitions (Telescope)
Normal
gO
Document symbols
Normal
gW
Workspace symbols
Normal
<leader>th
Toggle inlay hints (if supported)
gitsigns Attach (when file is in a Git repo)
Mode
Key
What it does
Normal
]c / [c
Next/previous git hunk
Normal/Visual
<leader>hs
Stage hunk
Normal/Visual
<leader>hr
Reset hunk
Normal
<leader>hS
Stage buffer
Normal
<leader>hu
Undo stage hunk
Normal
<leader>hR
Reset buffer
Normal
<leader>hp
Preview hunk
Normal
<leader>hb
Blame line
Normal
<leader>hd
Diff against index
Normal
<leader>hD
Diff against last commit
Normal
<leader>tb
Toggle line blame
Normal
<leader>tD
Toggle deleted lines preview
Full Active Mapping Dump
Generated from your current config with headless Neovim (nmap, imap, vmap, omap, smap, tmap, cmap).
Normal Mode (:nmap)
n <Esc> * <Cmd>nohlsearch<CR> <Space>f * <Lua 81: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121> [F]ormat buffern <Space>\ * <Cmd>Explore<CR> Fullscreen file explorern <Space>q * <Lua 62: ~/.local/nvim-linux-x86_64/share/nvim/runtime/lua/vim/diagnostic.lua:2445> Open diagnostic [Q]uickfix listn <Space>qc * <Cmd>cclose<CR> [Q]uickfix [C]losen <Space>qo * <Cmd>copen<CR> [Q]uickfix [O]penn <Space>bd * <Cmd>bdelete<CR> [B]uffer [D]eleten % <Plug>(MatchitNormalForward)n & * :&&<CR> :help &-defaultn Y * y$ :help Y-defaultn [% <Plug>(MatchitNormalMultiBackward)n [<Space> * <Lua 60: vim/_defaults.lua:0> Add empty line above cursorn [B * <Lua 58: vim/_defaults.lua:0> :brewindn [b * <Lua 56: vim/_defaults.lua:0> :bpreviousn [<C-T> * <Lua 54: vim/_defaults.lua:0> :ptpreviousn [T * <Lua 52: vim/_defaults.lua:0> :trewindn [t * <Lua 50: vim/_defaults.lua:0> :tpreviousn [A * <Lua 48: vim/_defaults.lua:0> :rewindn [a * <Lua 46: vim/_defaults.lua:0> :previousn [<C-L> * <Lua 44: vim/_defaults.lua:0> :lpfilen [L * <Lua 42: vim/_defaults.lua:0> :lrewindn [l * <Lua 40: vim/_defaults.lua:0> :lpreviousn [<C-Q> * <Lua 38: vim/_defaults.lua:0> :cpfilen [Q * <Lua 36: vim/_defaults.lua:0> :crewindn [q * <Lua 34: vim/_defaults.lua:0> :cpreviousn [D * <Lua 32: vim/_defaults.lua:0> Jump to the first diagnostic in the current buffern [d * <Lua 30: vim/_defaults.lua:0> Jump to the previous diagnostic in the current buffern \ * <Cmd>Lexplore<CR> Toggle file explorer sidebarn ]% <Plug>(MatchitNormalMultiForward)n ]<Space> * <Lua 61: vim/_defaults.lua:0> Add empty line below cursorn ]B * <Lua 59: vim/_defaults.lua:0> :blastn ]b * <Lua 57: vim/_defaults.lua:0> :bnextn ]<C-T> * <Lua 55: vim/_defaults.lua:0> :ptnextn ]T * <Lua 53: vim/_defaults.lua:0> :tlastn ]t * <Lua 51: vim/_defaults.lua:0> :tnextn ]A * <Lua 49: vim/_defaults.lua:0> :lastn ]a * <Lua 47: vim/_defaults.lua:0> :nextn ]<C-L> * <Lua 45: vim/_defaults.lua:0> :lnfilen ]L * <Lua 43: vim/_defaults.lua:0> :llastn ]l * <Lua 41: vim/_defaults.lua:0> :lnextn ]<C-Q> * <Lua 39: vim/_defaults.lua:0> :cnfilen ]Q * <Lua 37: vim/_defaults.lua:0> :clastn ]q * <Lua 35: vim/_defaults.lua:0> :cnextn ]D * <Lua 31: vim/_defaults.lua:0> Jump to the last diagnostic in the current buffern ]d * <Lua 29: vim/_defaults.lua:0> Jump to the next diagnostic in the current buffern g% <Plug>(MatchitNormalBackward)n g] <Lua 165: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1233> Move to right "around"n g[ <Lua 162: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1232> Move to left "around"n gO * <Lua 22: vim/_defaults.lua:0> vim.lsp.buf.document_symbol()n grt * <Lua 21: vim/_defaults.lua:0> vim.lsp.buf.type_definition()n gri * <Lua 20: vim/_defaults.lua:0> vim.lsp.buf.implementation()n grr * <Lua 19: vim/_defaults.lua:0> vim.lsp.buf.references()n gra * <Lua 17: vim/_defaults.lua:0> vim.lsp.buf.code_action()n grn * <Lua 16: vim/_defaults.lua:0> vim.lsp.buf.rename()n gcc * <Lua 14: vim/_defaults.lua:0> Toggle comment linen gc * <Lua 12: vim/_defaults.lua:0> Toggle commentn gx * <Lua 10: vim/_defaults.lua:0> Opens filepath or URI under cursor with the system handler (file explorer, web browser, …)n shn * <Lua 272: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Highlight next surroundingn shl * <Lua 270: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Highlight previous surroundingn sh * <Lua 235: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Highlight surroundingn sFn * <Lua 183: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find next left surroundingn sFl * <Lua 239: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find previous left surroundingn sF * <Lua 182: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find left surroundingn sfn * <Lua 243: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find next right surroundingn sfl * <Lua 233: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find previous right surroundingn sf * <Lua 244: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find right surroundingn srn * <Lua 242: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1255> Replace next surroundingn srl * <Lua 240: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1255> Replace previous surroundingn sr * <Lua 238: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1255> Replace surroundingn sdn * <Lua 236: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1255> Delete next surroundingn sdl * <Lua 234: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1255> Delete previous surroundingn sd * <Lua 218: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1255> Delete surroundingn s * <Nop>n sa * <Lua 181: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1255> Add surroundingn <Plug>(MatchitNormalMultiForward) * :<C-U>call matchit#MultiMatch("W", "n")<CR>n <Plug>(MatchitNormalMultiBackward) * :<C-U>call matchit#MultiMatch("bW", "n")<CR>n <Plug>(MatchitNormalBackward) * :<C-U>call matchit#Match_wrapper('',0,'n')<CR>n <Plug>(MatchitNormalForward) * :<C-U>call matchit#Match_wrapper('',1,'n')<CR> <Plug>luasnip-expand-repeat * <Lua 105: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:35> LuaSnip: Repeat last node expansionn <Plug>luasnip-delete-check * <Lua 103: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:28> LuaSnip: Removes current snippet from jumplistn <F2> * <Lua 23: ~/.local/nvim-linux-x86_64/share/nvim/runtime/lua/vim/lsp/buf.lua:640> Rename symboln <C-P> * <Lua 24: ~/.config/nvim/init.lua:213> Find filesn <C-S> * <Cmd>w<CR> Save filen <C-K> * <C-W><C-K> Move focus to the upper windown <C-J> * <C-W><NL> Move focus to the lower windown <C-H> * <C-W><C-H> Move focus to the left windown <C-W><C-D> <C-W>d Show diagnostics under the cursorn <C-W>d * <Lua 33: vim/_defaults.lua:0> Show diagnostics under the cursorn <C-L> * <C-W><C-L> Move focus to the right window
Insert Mode (:imap)
! <Plug>luasnip-expand-repeat * <Lua 116: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:38> LuaSnip: Repeat last node expansion! <Plug>luasnip-delete-check * <Lua 104: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:31> LuaSnip: Removes current snippet from jumplisti <Plug>luasnip-jump-prev * <Lua 102: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:24> LuaSnip: Jump to the previous nodei <Plug>luasnip-jump-next * <Lua 97: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:21> LuaSnip: Jump to the next nodei <Plug>luasnip-prev-choice * <Lua 96: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:18> LuaSnip: Change to the previous choice from the choiceNodei <Plug>luasnip-next-choice * <Lua 95: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:15> LuaSnip: Change to the next choice from the choiceNodei <Plug>luasnip-expand-snippet * <Lua 94: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:12> LuaSnip: Expand the current snippeti <Plug>luasnip-expand-or-jump * <Lua 93: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:9> LuaSnip: Expand or jump in the current snippeti <S-Tab> * <C-D>i <C-S> * <Cmd>w<CR> Save filei <C-W> * <C-G>u<C-W> :help i_CTRL-W-defaulti <C-U> * <C-G>u<C-U> :help i_CTRL-U-defaulti <Tab> * <Lua 25: vim/_defaults.lua:0> vim.snippet.jump if active, otherwise <Tab>i jk * <Esc> Escape insert mode
Visual/Select Mode (:vmap)
s <Tab> * <Lua 26: vim/_defaults.lua:0> vim.snippet.jump if active, otherwise <Tab> <Space>f * <Lua 81: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121> [F]ormat bufferx # * <Lua 9: vim/_defaults.lua:0> :help v_#-defaultx % <Plug>(MatchitVisualForward)x * * <Lua 4: vim/_defaults.lua:0> :help v_star-defaultx @ * mode() ==# 'V' ? ':normal! @'.getcharstr().'<CR>' : '@' :help v_@-defaultx Q * mode() ==# 'V' ? ':normal! @<C-R>=reg_recorded()<CR><CR>' : 'Q' :help v_Q-defaultx [% <Plug>(MatchitVisualMultiBackward)x ]% <Plug>(MatchitVisualMultiForward)x a% <Plug>(MatchitVisualTextObject)x al <Lua 117: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1236> Around last textobjectx an <Lua 116: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1236> Around next textobjectx a <Lua 112: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1236> Around textobjectx g% <Plug>(MatchitVisualBackward)x g] <Lua 110: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1233> Move to right "around"x g[ <Lua 107: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1232> Move to left "around"x gra * <Lua 18: vim/_defaults.lua:0> vim.lsp.buf.code_action()x gc * <Lua 13: vim/_defaults.lua:0> Toggle commentx gx * <Lua 11: vim/_defaults.lua:0> Opens filepath or URI under cursor with the system handler (file explorer, web browser, …)x il <Lua 119: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1236> Inside last textobjectx in <Lua 118: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1236> Inside next textobjectx i <Lua 113: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1236> Inside textobjectx sFn * <Lua 192: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find next left surroundingx sFl * <Lua 188: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find previous left surroundingx sF * <Lua 161: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find left surroundingx sfn * <Lua 165: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find next right surroundingx sfl * <Lua 169: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find previous right surroundingx sf * <Lua 187: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find right surroundingx s * <Nop>x sa * :<C-U>lua MiniSurround.add("visual")<CR> Add surrounding to selectionx <Plug>(MatchitVisualTextObject) <Plug>(MatchitVisualMultiBackward)o<Plug>(MatchitVisualMultiForward)x <Plug>(MatchitVisualMultiForward) * :<C-U>call matchit#MultiMatch("W", "n")<CR>m'gv``x <Plug>(MatchitVisualMultiBackward) * :<C-U>call matchit#MultiMatch("bW", "n")<CR>m'gv``x <Plug>(MatchitVisualBackward) * :<C-U>call matchit#Match_wrapper('',0,'v')<CR>m'gv``x <Plug>(MatchitVisualForward) * :<C-U>call matchit#Match_wrapper('',1,'v')<CR>:if col("''") != col("$") | exe ":normal! m'" | endif<CR>gv``s <Plug>luasnip-jump-prev * <Lua 209: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:57> LuaSnip: Jump to the previous nodes <Plug>luasnip-jump-next * <Lua 208: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:54> LuaSnip: Jump to the next nodes <Plug>luasnip-prev-choice * <Lua 205: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:51> LuaSnip: Change to the previous choice from the choiceNodes <Plug>luasnip-next-choice * <Lua 204: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:48> LuaSnip: Change to the next choice from the choiceNodes <Plug>luasnip-expand-snippet * <Lua 203: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:45> LuaSnip: Expand the current snippets <Plug>luasnip-expand-or-jump * <Lua 202: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:42> LuaSnip: Expand or jump in the current snippet <Plug>luasnip-expand-repeat * <Lua 151: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:35> LuaSnip: Repeat last node expansions <S-Tab> * <Lua 28: vim/_defaults.lua:0> vim.snippet.jump if active, otherwise <S-Tab>v <C-S> * <Cmd>w<CR> Save file
Operator-Pending Mode (:omap)
<Space>f * <Lua 87: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121> [F]ormat buffero % <Plug>(MatchitOperationForward)o [% <Plug>(MatchitOperationMultiBackward)o ]% <Plug>(MatchitOperationMultiForward)o al <Lua 135: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1236> Around last textobjecto an <Lua 134: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1236> Around next textobjecto a <Lua 128: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1236> Around textobjecto g% <Plug>(MatchitOperationBackward)o g] <Lua 125: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1233> Move to right "around"o g[ <Lua 122: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1232> Move to left "around"o gc * <Lua 15: vim/_defaults.lua:0> Comment textobjecto il <Lua 137: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1236> Inside last textobjecto in <Lua 136: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1236> Inside next textobjecto i <Lua 129: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/ai.lua:1236> Inside textobjecto sFn * <Lua 89: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find next left surroundingo sFl * <Lua 169: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find previous left surroundingo sF * <Lua 81: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find left surroundingo sfn * <Lua 168: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find next right surroundingo sfl * <Lua 80: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find previous right surroundingo s * <Nop>o sf * <Lua 167: ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua:1276> Find right surroundingo <Plug>(MatchitOperationMultiForward) * :<C-U>call matchit#MultiMatch("W", "o")<CR>o <Plug>(MatchitOperationMultiBackward) * :<C-U>call matchit#MultiMatch("bW", "o")<CR>o <Plug>(MatchitOperationBackward) * :<C-U>call matchit#Match_wrapper('',0,'o')<CR>o <Plug>(MatchitOperationForward) * :<C-U>call matchit#Match_wrapper('',1,'o')<CR> <Plug>luasnip-expand-repeat * <Lua 141: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:35> LuaSnip: Repeat last node expansion
Select Mode (:smap)
s <Tab> * <Lua 26: vim/_defaults.lua:0> vim.snippet.jump if active, otherwise <Tab> <Space>f * <Lua 86: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121> [F]ormat buffers <Plug>luasnip-jump-prev * <Lua 131: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:57> LuaSnip: Jump to the previous nodes <Plug>luasnip-jump-next * <Lua 123: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:54> LuaSnip: Jump to the next nodes <Plug>luasnip-prev-choice * <Lua 122: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:51> LuaSnip: Change to the previous choice from the choiceNodes <Plug>luasnip-next-choice * <Lua 120: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:48> LuaSnip: Change to the next choice from the choiceNodes <Plug>luasnip-expand-snippet * <Lua 119: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:45> LuaSnip: Expand the current snippets <Plug>luasnip-expand-or-jump * <Lua 108: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:42> LuaSnip: Expand or jump in the current snippet <Plug>luasnip-expand-repeat * <Lua 106: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:35> LuaSnip: Repeat last node expansions <S-Tab> * <Lua 28: vim/_defaults.lua:0> vim.snippet.jump if active, otherwise <S-Tab>v <C-S> * <Cmd>w<CR> Save file
Terminal Mode (:tmap)
t <Esc><Esc> * <C-\><C-N> Exit terminal mode
Command-Line Mode (:cmap)
! <Plug>luasnip-expand-repeat * <Lua 145: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:38> LuaSnip: Repeat last node expansion! <Plug>luasnip-delete-check * <Lua 143: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:31> LuaSnip: Removes current snippet from jumplist
Notes
lua/mappings.lua exists in this repo but is not loaded by init.lua.
This cheatsheet reflects mappings active at generation time on 2026-02-20.