Cursor control and position |
Editing |
h |
Left |
j |
Down |
k |
Up |
l (or spacebar) |
Right |
w |
Forward one word |
b |
Back one word |
e |
End of word |
( |
Beginning of current sentence |
) |
Beginning of next sentence |
{ |
Beginning of current paragraph |
} |
Beginning of next paragraph |
[[ |
Beginning of current section |
]] |
Beginning of next section |
A |
Append to end of current line |
0 |
Start of current line |
i |
Insert before cursor |
$ |
End of current line |
I |
Insert at beginning of line |
^ |
First non-white character of current line |
o |
Open line above cursor |
+ or RETURN |
First character of next line |
O |
Open line below cursor |
– |
First character of previous line |
ESC |
End of insert mode |
n | |
character n of current line |
Ctrl-I |
Insert a tab |
H |
Top line of current screen |
Ctrl-T |
Move to next tab position |
M |
Middle line of current screen |
Backspace |
Move back one character |
L |
Last line of current screen |
Ctrl-U |
Delete current line |
nH |
n lines after top line of current screen |
Ctrl-V |
Quote next character |
nL |
n lines before last line of current screen |
Ctrl-W |
Move back one word |
Ctrl-F |
Forward one screen |
cw |
Change word |
Ctrl-B |
Back one screen |
cc |
Change line |
Ctrl-D |
Down half a screen |
C |
Change from current position to end of line |
Ctrl-U |
Up half a screen |
dd |
Delete current line |
Ctrl-E |
Display another line at bottom of screen |
ndd |
Delete n lines |
Ctrl-Y |
Display another line at top of screen |
D |
Delete remainer of line |
z RETURN |
Redraw screen with cursor at top |
dw |
Delete word |
z . |
Redraw screen with cursor in middle |
d} |
Delete rest of paragraph |
z – |
Redraw screen with cursor at bottom |
d^ |
Delete back to start of line |
Ctrl-L |
Redraw screen without re-positioning |
c/pat |
Delete up to first occurance of pattern |
Ctrl-R |
Redraw screen without re-positioning |
dn |
Delete up to next occurance of pattern |
/text |
Search for text (forwards) |
dfa |
Delete up to and including a on current line |
/ |
Repeat forward search |
dta |
Delete up to, but not including, a on current line |
?text |
Search for text (backwards) |
dL |
Delete up to last line on screen |
? |
Repeat previous search backwards |
dG |
Delete to end of file |
n |
Repeat previous search |
J |
Join two lines |
N |
Repeat previous search, but it opposite direction |
p |
Insert buffer after cursor |
/text/+n |
Go to line n after text |
P |
Insert buffer before cursor |
?text?-n |
Go to line n before text |
rx |
Replace character with x |
% |
Find match of current parenthesis, brace, or bracket. |
Rtext |
Replace text beginning at cursor |
Ctrl-G |
Display line number of cursor |
s |
Substitute character |
nG |
Move cursor to line number n |
ns |
Substitute n characters |
:n |
Move cursor to line number n |
S |
Substitute entire line |
G |
Move to last line in file |
u |
Undo last change |
|
|
U |
Restore current line |
|
x |
Delete current cursor position |
X |
Delete back one character |
nX |
Delete previous n characters |
. |
Repeat last change |
~ |
Reverse case |
y |
Copy current line to new buffer |
yy |
Copy current line |
«xyy |
Copy current line into buffer x |
«Xd |
Delete and append into buffer x |
«xp |
Put contents of buffer x |
y]] |
Copy up to next section heading |
ye |
Copy to end of word |
|
|
|
File Handling |
|
|
:w |
Write file |
|
:w! |
Write file (ignoring warnings) |
:w! file |
Overwrite file (ignoring warnings) |
:wq |
Write file and quit |
:q |
Quit |
:q! |
Quit (even if changes not saved) |
:w file |
Write file as file, leaving original untouched |
ZZ |
Quit, only writing file if changed |
😡 |
Quit, only writing file if changed |
:n1,n2w file |
Write lines n1 to n2 to file |
:n1,n2w >> file |
Append lines n1 to n2 to file |
:e file2 |
Edit file2 (current file becomes alternate file) |
:e! |
Reload file from disk (revert to previous saved version) |
:e# |
Edit alternate file |
% |
Display current filename |
# |
Display alternate filename |
:n |
Edit next file |
:n! |
Edit next file (ignoring warnings) |
:n files |
Specify new list of files |
:r file |
Insert file after cursor |
:r !command |
Run command, and insert output after current line |