docs: extract keymap cheatsheet into CHEATSHEET.md
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# Cheatsheet
|
||||
|
||||
Default Vim/Neovim bindings and commands worth remembering.
|
||||
|
||||
## Insert mode
|
||||
|
||||
- `<C-T>`: indent (`:h i_CTRL-T`)
|
||||
- `<C-D>`: un-indent (`:h i_CTRL-D`)
|
||||
|
||||
## Normal mode
|
||||
|
||||
- `H` / `M` / `L`: jump to highest / middle / lowest line in window
|
||||
- `<count?><C-E>`: scroll window down `<count>` lines (`:h CTRL-E`)
|
||||
- `<count?><C-Y>`: scroll window up `<count>` lines (`:h CTRL-Y`)
|
||||
- `<C-A>`: increment
|
||||
- `<C-X>`: decrement
|
||||
- `<C-w>H` / `J` / `K` / `L`: move window left / down / up / right
|
||||
- `gq{motion}`: format word-wrap over `{motion}`
|
||||
- `{Visual}gq`: format word-wrap of the visual selection
|
||||
- `gqq`: format word-wrap of the current line
|
||||
|
||||
## Commands
|
||||
|
||||
### Quickfix list
|
||||
|
||||
- `:make`: run `makeprg`, put output in the quickfix list
|
||||
- `:grep`: run `grepprg`, put results in the quickfix list
|
||||
- `:cex {expr}`: build a quickfix list from `{expr}` and jump to the first
|
||||
entry, e.g. `:cex system('make')`
|
||||
- `:cgete {expr}`: like `:cex` but don't jump to the first entry
|
||||
- `:copen`: open the quickfix window
|
||||
- `:cdo {cmd}`: run `{cmd}` on each valid quickfix entry. Equivalent to:
|
||||
|
||||
```
|
||||
:cfirst
|
||||
:{cmd}
|
||||
:cnext
|
||||
:{cmd}
|
||||
...
|
||||
```
|
||||
|
||||
- `:cfdo {cmd}`: like `:cdo` but once per file
|
||||
- `:cn` / `:cp`: next / previous entry that includes a filename (bound to
|
||||
`]q` / `[q`)
|
||||
- `:cnf` / `:cpf`: next / previous entry in a different file (bound to
|
||||
`]<C-q>` / `[<C-q>`)
|
||||
- `:clast` / `:crewind`: last / first entry (bound to `]Q` / `[Q`)
|
||||
- `:cc [num]`: jump to entry `[num]`
|
||||
|
||||
### Location list
|
||||
|
||||
The location list is per-window. Otherwise it mirrors the quickfix commands.
|
||||
|
||||
- `:lmake` / `:lgrep`: like `:make` / `:grep` but into the location list
|
||||
- `:lex {expr}` / `:lgete {expr}`: like `:cex` / `:cgete`
|
||||
- `:lopen`: open the location-list window
|
||||
- `:ldo {cmd}` / `:lfdo {cmd}`: like `:cdo` / `:cfdo`
|
||||
- `:lne` / `:lp`: next / previous entry (bound to `]l` / `[l`)
|
||||
- `:lnf` / `:lpf`: next / previous entry in a different file (bound to
|
||||
`]<C-l>` / `[<C-l>`)
|
||||
- `:llast` / `:lrewind`: last / first entry (bound to `]L` / `[L`)
|
||||
- `:ll [num]`: jump to entry `[num]`
|
||||
|
||||
### Editing
|
||||
|
||||
- `@:`: repeat last command-line
|
||||
- `:s/foo/bar/`: substitute the first match in the current line
|
||||
- `:s/foo/bar/g`: all matches in the current line
|
||||
- `:%s/foo/bar/g`: all matches in the buffer
|
||||
- `:%s/foo/bar/gc`: all matches in the buffer, prompting per match
|
||||
|
||||
### Misc
|
||||
|
||||
- `:diffsplit <other-file>`: open a diff split
|
||||
- `:lua << EOF ... EOF`: lua heredoc, e.g.
|
||||
|
||||
```vim
|
||||
:lua << EOF
|
||||
local tbl = {1, 2, 3}
|
||||
for k, v in ipairs(tbl) do
|
||||
print(v)
|
||||
end
|
||||
EOF
|
||||
```
|
||||
Reference in New Issue
Block a user