Ex Quick Reference
Entering ex
% ex name |
edit name, start at end |
% ex +n name |
... at line n |
% ex -t tag |
start at tag |
% ex -r |
list saved files |
% ex -r name |
recover file name |
% ex name ... |
edit first; rest via :n |
Ex states
Command |
Normal and initial state. Input prompted for by :. Your kill
character cancels partial command. |
Insert |
Entered by a i and c. Arbitrary text then
terminates with line having only . character on it or abnormally
with interrupt. |
Open/visual |
Entered by o or v, terminates with q or two
successive interrupts. |
Ex commands
append |
a |
next |
n |
substitute |
s |
args |
ar |
number |
nu |
undo |
u |
change |
c |
open |
o |
version |
ve |
copy |
co |
preserve |
pre |
visual |
vi |
delete |
d |
print |
p |
write |
w |
edit |
e |
put |
pu |
yank |
ya |
file |
f |
quit |
q |
window |
z |
global |
g |
read |
re |
escape |
! |
insert |
i |
recover |
rec |
lshift |
< |
join |
j |
rewind |
rew |
print next |
CR |
list |
l |
set |
se |
resubst |
& |
mark |
ma |
shell |
sh |
rshift |
> |
move |
m |
source |
so |
scroll |
^D |
Ex command addresses
n |
line n |
/pat |
next with pat |
. |
current |
?pat |
previous with pat |
$ |
last |
x-n |
n before x |
+ |
next |
x,y |
x through y |
- |
previous |
´x |
marked with x |
+n |
n forward |
´´ |
previous context |
Specifying terminal type
% setenv TERM type |
csh and all version 6 |
$ TERM=type |
sh in Version 7 |
Some terminal types
2621 |
43 |
adm31 |
dw1 |
i100 |
2645 |
733 |
adm3a |
dw2 |
mime |
300s |
745 |
c100 |
gt40 |
owl |
33 |
act4 |
dm1520 |
gt42 |
t1061 |
37 |
act5 |
dm2500 |
h1500 |
vt52 |
4014 |
adm3 |
dm3025 |
h1510 |
Initializing options
.exrc |
place set's here in HOME directory |
set x |
enable option |
set nox |
disable option |
set x=val |
give value val |
set |
show changed options |
set x? |
show value of option x |
Useful options
autoindent |
ai |
supply indent |
beautify |
bf |
discard nonprinting chars |
ignorecase |
ic |
in scanning |
lisp |
|
( ) { } are s-exp's |
list |
|
print ^I for tab, $ at end |
magic |
|
. [ * special in patterns |
number |
nu |
number lines |
paragraphs |
para |
macro names which start ... |
redraw |
|
simulate smart terminal |
sections |
sect |
macro names ... |
shiftwidth |
sw |
for < >, and input ^D ^T |
showmatch |
sm |
to ) and } as typed |
slowopen |
slow |
choke updates during insert |
wrapscan |
ws |
around end of buffer? |
wrapmargin |
wm |
automatic line splitting |
Scanning pattern formation
↑ |
beginning of line |
$ |
end of line |
. |
any character |
\< |
beginning of word |
\> |
end of word |
[str] |
any char in str |
[↑str] |
... not in str |
[x-y] |
... between x and y |
* |
any number of preceding |
Vi Quick Reference
Starting vi
% vi name |
edit name at top |
% vi +n name |
... at line n |
% vi + name |
... at end |
% vi -r |
list saved files |
% vi -r name |
recover file name |
% vi name ... |
edit first; rest via :n |
% vi -t tag |
start at tag |
The display
Last line |
Error messages, echoing input to : / ? and !, feedback
about i/o and large changes. |
@ lines |
On screen only, not in file. |
~ lines |
Lines past end of file. |
^x |
Control characters, ^? is delete. |
tabs |
Expand to spaces, cursor at last. |
Vi states
Command |
Normal and initial state. Others return here. ESC (escape) cancels
partial command. |
Insert |
Entered by a i A I o O c C s S R. Arbitrary text then
terminates with ESC character, or abnormally with interrupt. |
Last line |
Reading input for : / ? or !; terminate with ESC or CR to
execute, interrupt to cancel. |
Counts before vi commands
new window size |
: / ? [[ ]] ^F ^B ` ´ |
line/column number |
z G | |
scroll amount |
^D ^U |
replicate insert |
a i A I |
repeat effect |
most rest |
Simple commands
dw |
delete a word |
de |
... leaving punctuation |
dd |
delete a line |
3dd |
... 3 lines |
itextESC |
insert text abc |
cwnewESC |
change word to new |
easESC |
pluralize word |
xp |
transpose characters |
Interrupting, cancelling
ESC |
end insert or incomplete cmd |
^? |
(delete or rubout) interrupts |
^L |
reprint screen if ^? scrambles it |
File manipulation
:w |
write back changes |
:wq |
write and quit |
:q |
quit |
:q! |
quit, discard changes |
:e name |
edit file name |
:e! |
reedit, discard changes |
:e + name |
edit, starting at end |
:e +n |
edit starting at line n |
:e # |
edit alternate file |
^↑ |
synonym for :e # |
:w name |
write file name |
:w! name |
overwrite file name |
:sh |
run shell, then return |
:!cmd |
run cmd, then return |
:n |
edit next file in arglist |
:n args |
specify new arglist |
:f |
show current file and line |
^G |
synonym for :f |
:ta tag |
to tag file entry tag |
^] |
:ta, following word is tag |
Positioning within file
^F |
forward screenful |
^B |
backward screenful |
^D |
scroll down half screen |
^U |
scroll up half screen |
G |
goto line (end default) |
/pat |
next line matching pat |
?pat |
prev line matching pat |
n |
repeat last / or ? |
N |
reverse last / or ? |
/pat/+n |
n'th line after pat |
?pat?-n |
n'th line before pat |
]] |
next section/function |
[[ |
previous section/function |
% |
find matching ( ) { or } |
Adjusting the screen
^L |
clear and redraw |
^R |
retype, eliminate @ lines |
zCR |
redraw, current at window top |
z- |
... at bottom |
z. |
... at center |
/pat/z- |
pat line at bottom |
zn. |
use n line window |
Marking and returning
`` |
previous context |
´´ |
... at first non-white in line |
mx |
mark position with letter x |
`x |
to mark x |
´x |
... at first non-white in line |
Line positioning
H |
home window line |
L |
last window line |
M |
middle window line |
+ |
next line, at first non-white |
- |
previous line, at first non-white |
CR |
return, same as + |
^N |
next line, same column |
^P |
previous line, same column |
LF |
linefeed, same as ^N |
Character positioning
↑ |
first non white |
0 |
beginning of line |
$ |
end of line |
space |
forward |
^H |
backwards |
h |
same as ^H |
fx |
find x forward |
Fx |
f backward |
tx |
upto x forward |
Tx |
back upto x |
; |
repeat last f F t or T |
, |
inverse of ; |
| |
to specified column |
% |
find matching ( { ) or } |
Words, sentences, paragraphs
w |
word forward |
b |
back word |
e |
end of word |
) |
to next sentence |
} |
to next paragraph |
( |
back sentence |
{ |
back paragraph |
W |
blank delimited word |
B |
back W |
E |
to end of W |
Commands for LISP
) |
Forward s-expression |
} |
... but don't stop at atoms |
( |
Back s-expression |
{ |
... but don't stop at atoms |
Corrections during insert
^H |
erase last character |
^W |
erases last word |
erase |
your erase, same as ^H |
kill |
your kill, erase input this line |
\ |
escapes ^H, your erase and kill |
ESC |
ends insertion, back to command |
^? |
interrupt, terminates insert |
^D |
backtab over autoindent |
↑^D |
kill autoindent, save for next |
0^D |
... but at margin next also |
^Q |
quote non-printing character |
^T |
shiftwidth forward tab |
Insert and replace
a |
append after cursor |
i |
insert before |
A |
append at end of line |
I |
insert before first non-blank |
o |
open line below |
O |
open above |
rx |
replace single char with x |
R |
replace characters |
Operators (double to affect lines)
d |
delete |
c |
change |
< |
left shift |
> |
right shift |
! |
filter through command |
= |
indent for LISP |
y |
yank lines to buffer |
Miscellaneous operations
C |
change rest of line |
D |
delete rest of line |
s |
substitute chars |
S |
substitute lines |
J |
join lines |
x |
delete characters |
X |
... before cursor |
Y |
yank lines |
Yank and put
p |
put back lines |
P |
put before |
"xp |
put from buffer x |
"xy |
yank to buffer x |
"xd |
delete into buffer x |
Undo, redo, retrieve
u |
undo last change |
U |
restore current line |
. |
repeat last change |
"dp |
retrieve d'th last delete |