Arrow keys |
Move cursor |
hjkl |
Same as arrow keys |
itextESC |
Insert text |
cwnewESC |
Change word to new |
easESC |
pluralize word (end of word; append s; escape from input state) |
x |
delete a character |
dw |
delete a word |
dd |
delete a line |
3dd |
deletes 3 lines |
u |
undo previous change |
ZZ |
exit vi , saving changes |
:q!CR |
quit, discarding changes |
/textCR |
search for text |
^U ^D |
scroll up or down |
:cmdCR |
any ex or ed command |
ESC |
end insert or incomplete command |
DEL |
(delete or rubout) interrupts |
:wCR |
write back changes |
:w!CR |
forced write, if permission originally not valid |
:qCR |
quit |
:q!CR |
quit, discard changes |
:e nameCR |
edit file name |
:e!CR |
reedit, discard changes |
:e + nameCR |
edit, starting at end |
:e +nCR |
edit, starting at line n |
:e #CR |
edit alternate file |
:e! #CR |
edit alternate file, discard changes |
:w nameCR |
write file name |
:w! nameCR |
overwrite file name |
:shCR |
run shell, then return |
:!cmdCR |
run cmd, then return |
:nCR |
edit next file in arglist |
:n argsCR |
specify new arglist |
^G |
show current file and line |
:ta tagCR |
position cursor to tag |
F |
forward screen |
^B |
backward screen |
^D |
scroll down half screen |
^U |
scroll up half screen |
nG |
go to the beginning of the specified line (end default), where n is a line number |
/pat |
next line matching pat |
?pat |
previous line matching pat |
n |
repeat last / or ? command |
N |
reverse last / or ? command |
/pat/+n |
nth line after pat |
?pat?-n |
nth line before pat |
]] |
next section/function |
[[ |
previous section/function |
( |
beginning of sentence |
) |
end of sentence |
[ |
beginning of paragraph |
] |
end of paragraph |
% |
find matching ( ) or [ ] |
^L |
clear and redraw window |
^R |
clear and redraw window if ^L is -> key |
zCR |
redraw screen with current line at top of window |
z-CR |
redraw screen with current line at bottom of window |
z.CR |
redraw screen with current line at center of window |
/pat/z-CR |
move pat line to bottom of window |
zn.CR |
use n-line window |
^E |
scroll window down one line |
^Y |
scroll window up one line |
`` |
move cursor to previous context |
'' |
move cursor to first non-white space in line |
mx |
mark current position with the ASCII lower-case letter x |
`x |
move cursor to mark x |
'x |
move cursor to first non-white space in line marked by x |
H |
top line on screen |
L |
last line on screen |
M |
middle line on screen |
+ |
next line, at first non-white space character |
- |
previous line, at first non-white space character |
CR |
return, same as + |
down-arrow or j |
next line, same column |
up-arrow or k |
previous line, same column |
^ |
first non-white space character |
0 |
beginning of line |
$ |
end of line |
l or -> |
forward |
h or <- |
backward |
^H |
same as <- (backspace) |
space |
same as -> (space bar) |
fx |
find next x |
Fx |
find next x |
tx |
move to character following the next x |
Tx |
move to character following the previous x |
; |
repeat last f, F, t, or T |
, |
repeat inverse of last f, F, t, or T |
n| |
move to column n |
% |
find matching ( ) or [ ] |
w |
forward a word |
b |
back a word |
e |
end of word |
) |
to next sentence |
] |
to next paragraph |
( |
back a sentence |
[ |
back a paragraph |
W |
forward a blank-delimited word |
B |
back a blank-delimited word |
E |
end of a blank-delimited word |
^H |
erase last character (backspace) |
^W |
erase last word |
erase |
your erase character, same as ^H (backspace) |
kill |
your kill character, erase this line of input |
\ |
quotes your erase and kill characters |
ESC |
ends insertion, back to command mode |
CTRL-C |
interrupt, suspends insert mode |
^D |
backtab one character; reset left margin of autoindent |
^^D |
caret (^) followed by control-d (^D); backtab to beginning of line; do not reset left margin of autoindent |
0^D |
backtab to beginning of line; reset left margin of autoindent |
^V |
quote non-printable character |
a |
append after cursor |
A |
append at end of line |
i |
insert before cursor |
I |
insert before first non-blank |
o |
open line below |
O |
open line above |
rx |
replace single character with x |
RtextESC |
replace characters |
d |
delete |
c |
change |
y |
yank lines to buffer |
> |
left shift |
< |
right shift |
! |
filter through command |
C |
change rest of line (c$) |
D |
delete rest of line (d$) |
s |
substitute characters (cl) |
S |
substitute lines (cc) |
J |
join lines |
x |
delete characters (dl) |
X |
delete characters before cursor dh) |
Y |
yank lines (yy) |
3yy |
yank 3 lines |
3yl |
yank 3 characters |
p |
put back text after cursor |
P |
put back text before cursor " .nr )I xp"n put from buffer x " .nr )I xy"n yank to buffer x " .nr )I xd"n delete into buffer x |
u |
undo last change |
U |
restore current line |
. |
repeat last change " .nr )I dp"n retrieve d'th last delete |