set verbose mode (good for learning)
:set -add global autoinfo normal
10g - go to line 10
g +
g - buffer start
e - buffer end
j - buffer bottom
t - window top
c - window center
b - window bottom
l - line end
h - line begin
i - line non blank start
v +
v - center vertically
m - center horizontally
t - top
b - bottom
h, j, k, l - scroll one char
/ <a-/> - start search forward (backward)
n <a-n> - search next search pattern forward (backward)
N <a-N> - extend next search pattern forward (backward)
% - select whole buffer
s - select (find) regex in selected text
<a-S> - select first and last char of selection(s)
<a-s> - split selection on line ends
S - split selection on given regex
x - select line (X - next line below)
<a-x> - extend selections to whole lines
<a-X> - crop selections to whole lines
<a-;> - switch anchor and cursor
; - collapse selection to its anchor (one char, effectively reduce selection to one char)
<a-i> - select inner object
<a-a> - select all object (paragraph, sentence, etc)
[ - select to beginning of an object; <a-[ - inner object
{ - extend to beginning of an object; <a-{ - inner object
] - select to the end of an object; <a-] - inner object
} - extend to beginning of an object; <a-} - inner object
<a-s> - split selected text on line ends
<a-k> - select lines matching regexp inside selection
<a-K> - select lines NOT matching regexp inside selection
7G - select to line 7
<a-h> - select until beginning of; line like Vim 0
<a-l> - select until end of line; like Vim $
m - match paranthesis; like Vim's %, select parans and content inside
<a-m> - match parens backwards (direction)
M - get a selection from current cursor to next block end or rather extend to next parans included
<a-M> - extend to prev parens
f - select to next char included (<a-f> - prev char)
C - copy selection on next lines (<a-C> - previus lines)
<a-&> - copy identation
Z - save selection in mark register ^
z - restore selections stored in register ^
<a-z> - combine selection from register, confirm by hitting a for example
<a-Z> - combine selections to register
<space> - remove all selections except main
<a-space> - remove main selection
_ - trim selections
y - yank
p - paste after (P before)
<a-p> - paste every yanked selection after selected text, keep new (pasted) selection (<a-P> before)
d - delete
i - instert
c - delete and inserst
R - replace selection with the content of the register
<a-R> - replace selected text with yanked text
u - undo
U - redo
<a-j> - join with next line (<a-J> include spaces)
backtick - convert to lower-case (<a-backtick> - swap case)
~ - convert to upper-case
o - insert on new line below (O above)
<a-o> - add new line below (<a-O> above)
) - loop through selections (( backward)
<a-)> - rotate splitted selection clock-wise (<a-(> counter clock-wise)
"m* - save smart search (*) pattern to register m (_ is a null register)
<c-r> - instert into the buffer value stored in the register (% - buffer name, etc.); numbers correspond to submatches, like (\w+)
. - repeat last insert session
<a-.> - repeat last selection (for example ]p); like Vim' ;
Q - start recording macro until Esc is hit
q - replay the macro (saved in the @ register)
| - modify selections by passind to the shell command which will transform them and write back (<a-|> will ignore results)
! - insert a result of the shell cmd before selections (<a-!> - append result)
$ - apply predicate to selections (0 return value is considered a success); filiter them
|fold -w80 - wrap selection
!date - insert date before selection
$xsel -bi - copy selection to clipboard. -bi stands for --clipboard --input
%|diff -u <c-r>% - - compare current buffer contents with the version saved to disk
<a-;> insert mode -> normal mode (for one cmd) -> back, preseving selections/bindings, modes can be deeply nested (hit Esc more than once if needed)
The couple u and U lets you move backward and forward in the last branch while their alternative versions <a-u> <a-U> follow absolute history id which may be located somewhere else in the history tree.
@lambda-mike Thank you for your cheat sheet. I created a pdf-version, plus I added the copy command for macOS.