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.
| key | name | description | mode |
|---|---|---|---|
| exit | exit insert/visual mode | insert, normal, visual |
Getting Help
| key | name | description | mode |
|---|---|---|---|
| suggest | show 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 docs | Show text documentation for keybindings | normal | |
| visual doc | Show visual documentation for keybindings | normal |
Cursor Movement (Normal, Visual, Operator)
| key | name | description | mode |
|---|---|---|---|
| ←/→ | move cursor left/right | normal | |
| ↓/↑ | move cursor down/up | normal | |
| ↓/↑ wrap | move cursor down/up (multi-line text) | normal | |
| pg ↓/↑ | move down/up, relative to page size | normal, visual, insert | |
| word →/← | jump forwards/backwards to the start of a word | normal | |
| WORD →/← | jump forwards/backwards to the start of a word (words can contain punctuation) | normal | |
| word/WORD end | jump forwards to the end of a word | normal | |
| paragraph →/← | jump forwards/backwards to the start of a paragraph (contiguous lines) | normal | |
| line start/end | jump to the start/end of the line | normal | |
| first non-blank | jump to the first non-blank character of the line | normal | |
| line end | jump to the end of the line | normal | |
| doc start/end | go to the first/last line of the document | normal | |
| doc end | go to the last line of the document | normal | |
| find →/← | jump to next/previous occurrence of character x | normal | |
| to →/← | jump to just before the next/previous occurrence of character x | normal |
Text Objects (aw, iw, etc.)
| key | name | description | mode |
|---|---|---|---|
| in word | operate on entire word | normal | |
| around word | operate on entire word and space | normal | |
| in WORD | operate on entire word (including punctuation) | normal | |
| ard WORD | operate around entire word (including punctuation) | normal | |
| in paragraph | operate on entire paragraph | normal | |
| around paragraph | operate on entire paragraph and spacing | normal |
Counts (0-9)
Counts can be prefixed to commands to repeat them the given number of times. e.g. 9dj deletes 9 lines
| key | name | description | mode |
|---|---|---|---|
| count 0-9 | Add digit 0-9 to count argument of a command | insert, normal, visual |
Insert Mode
| key | name | description | mode |
|---|---|---|---|
| insert | insert before the cursor | normal | |
| insert start | insert at the beginning of the line | normal | |
| append | insert (append) after the cursor | normal | |
| append end | insert (append) at the end of the line | normal | |
| open below | append (open) a new line below the current line | normal | |
| open above | append (open) a new line above the current line | normal |
Editing / Operators
| key | name | description | mode |
|---|---|---|---|
| delete | delete marked text | normal | |
| delete line | delete (cut) a line | normal | |
| yank | yank (copy) marked text | normal | |
| yank line | yank (copy) a line | normal | |
| change | change | normal | |
| change line | change (replace) entire line | normal | |
| del char | delete (cut) character | normal | |
| paste | put (paste) the clipboard after cursor | normal | |
| undo | undo | normal | |
| redo | redo | normal |
Visual Mode
In visual mode there is an ongoing selection that is modified by motions. Commands (like d) operate on the selected text.
| key | name | description | mode |
|---|---|---|---|
| visual | start visual mode | normal |
Search
| key | name | description | mode |
|---|---|---|---|
| search | search for pattern | normal, visual | |
| next | repeat search in same direction | normal, visual | |
| previous | repeat search in opposite direction | normal, visual |
Window Commands (Ctrl+w)
| key | name | description | mode |
|---|---|---|---|
| hover | open hover for word under the cursor | normal | |
| split window | split window | normal | |
| split vertical | split window vertically | normal | |
| switch window | switch windows | normal | |
| quit window | quit a window | normal | |
| window left/right/down/up | move cursor to the window left/right/down/up | normal |
