Skip to content

Simple Vim Bindings

This Vim binding set serves as a starting place to learn Master Key. Note that the goal of Master Key is to create modern modal keybinding configurations, rather than achieving perfect Vim parity (VSCodeVim and vscode-neovim already do this quite well). These bindings can be expanded on using Master Key: New Keybinding Copy.

This binding set was generated from the MIT licensed bindings located at https://vim.rtorr.com/ using an LLM (Gemini CLI) and then cleaned and curated by hand.

Contributions to improve the keybindings are welcome and can be submitted via a PR

Normal Mode

Normal mode is the default mode in VIM. In this mode each key issues a command, even when there is no modifier, like control. To insert text you issue an insert command (like i), see Insert Mode for more ways to insert text.

keynamedescriptionmode
exitexit insert/visual modeinsert, normal, visual

Getting Help

keynamedescriptionmode
suggestshow command suggestions within the context of the current mode and keybinding prefix (if any). E.g. `g, ^;` in `normal` mode will show all `normal` command suggestions that start with `g`.insert, normal, visual
text docsShow text documentation for keybindingsnormal
visual docShow visual documentation for keybindingsnormal

Cursor Movement (Normal, Visual, Operator)

keynamedescriptionmode
←/→move cursor left/rightnormal
↓/↑move cursor down/upnormal
↓/↑ wrapmove cursor down/up (multi-line text)normal
pg ↓/↑move down/up, relative to page sizenormal, visual, insert
word →/←jump forwards/backwards to the start of a wordnormal
WORD →/←jump forwards/backwards to the start of a word (words can contain punctuation)normal
word/WORD endjump forwards to the end of a wordnormal
paragraph →/←jump forwards/backwards to the start of a paragraph (contiguous lines)normal
line start/endjump to the start/end of the linenormal
first non-blankjump to the first non-blank character of the linenormal
line endjump to the end of the linenormal
doc start/endgo to the first/last line of the documentnormal
doc endgo to the last line of the documentnormal
find →/←jump to next/previous occurrence of character xnormal
to →/←jump to just before the next/previous occurrence of character xnormal

Text Objects (aw, iw, etc.)

keynamedescriptionmode
in wordoperate on entire wordnormal
around wordoperate on entire word and spacenormal
in WORDoperate on entire word (including punctuation)normal
ard WORDoperate around entire word (including punctuation)normal
in paragraphoperate on entire paragraphnormal
around paragraphoperate on entire paragraph and spacingnormal

Counts (0-9)

Counts can be prefixed to commands to repeat them the given number of times. e.g. 9dj deletes 9 lines

keynamedescriptionmode
count 0-9Add digit 0-9 to count argument of a commandinsert, normal, visual

Insert Mode

keynamedescriptionmode
insertinsert before the cursornormal
insert startinsert at the beginning of the linenormal
appendinsert (append) after the cursornormal
append endinsert (append) at the end of the linenormal
open belowappend (open) a new line below the current linenormal
open aboveappend (open) a new line above the current linenormal

Editing / Operators

keynamedescriptionmode
deletedelete marked textnormal
delete linedelete (cut) a linenormal
yankyank (copy) marked textnormal
yank lineyank (copy) a linenormal
changechangenormal
change linechange (replace) entire linenormal
del chardelete (cut) characternormal
pasteput (paste) the clipboard after cursornormal
undoundonormal
redoredonormal

Visual Mode

In visual mode there is an ongoing selection that is modified by motions. Commands (like d) operate on the selected text.

keynamedescriptionmode
visualstart visual modenormal
keynamedescriptionmode
searchsearch for patternnormal, visual
nextrepeat search in same directionnormal, visual
previousrepeat search in opposite directionnormal, visual

Window Commands (Ctrl+w)

keynamedescriptionmode
hoveropen hover for word under the cursornormal
split windowsplit windownormal
split verticalsplit window verticallynormal
switch windowswitch windowsnormal
quit windowquit a windownormal
window left/right/down/upmove cursor to the window left/right/down/upnormal