ecce
— Edinburgh
Compatible Context Editor
ecce |
-from inputfile
[-to outputfile]
[-log logfile]
[-size bytes] |
ecce
is a line-based text editor. It first
appeared many years ago at the University of Edinburgh, and has been
re-implemented many times. Thuis manual page does not attempt to be an
ecce
tutorial; it merely details how to invoke
ecce
, and summarises the basic commands. For more
details, see the full documentation.
When invoking ecce
, there is no need to
precede arguments with flags if they are given in the order shown above. If
an argument is omitted, the next agument must be specified using the
appropriate flag.
To create a new file, an empty input file must be specified. A
suitable file is /dev/null.
The operation of ecce
is directed by a
series of commands which are typed by the user. Each command line consists
of a single command, or a sequence of several commands terminated by a
newline. No command separator is required between individual commands, and
unquoted spaces are not significant. The individual commands in a command
sequence are executed from left to right. The basic editing commands consist
of a letter, or a letter followed by a text string. The letter is mnemonic
for an imperative verb. The text string is any sequence of characters
(excluding newline) enclosed within quotation marks. Any command may be
followed by a repetition number to indicate that the command is to be
executed repeatedly the number of times specified. Compound commands may be
formed by enclosing a sequence of commands within parentheses.
In the following list, the Notes column
indicates the notes pertaining to the particular command. These can indicate
how a command can `fail', or other relevant information about the
command.
Command |
Effect |
Notes |
m{n} |
move to next line |
1 |
m-{n} |
move to previous line |
2 |
f{m}'....'{n} |
find text |
3,10 |
s'....' |
substitute text |
4 |
g{n} |
get line |
5 |
k{n} |
kill (delete) whole line |
1 |
i'....'{n} |
insert text |
6 |
b |
break line (insert newline) |
|
d{m}'....'{n} |
delete text |
3,7 |
j |
join (delete next newline) |
6 |
p{n} |
print line |
1 |
r{n} |
move right |
8 |
l{n} |
move left |
9 |
e{n} |
erase right |
8 |
e-{n} |
erase left |
9 |
t{m}'....'{n} |
traverse text |
3,7 |
u{m}'....'{n} |
uncover (delete until) text |
3,7 |
v'....' |
verify (test for) text |
|
Note |
Information |
1 |
file pointer at end of file |
2 |
current line is first line of file |
3 |
text not found |
4 |
no text to replace |
5 |
entered line begins with a: |
6 |
current line too long |
7 |
default scope is current line |
8 |
file pointer at end of current line |
9 |
file pointer at beginning of current line |
10 |
default scope is rest of file |
Command |
Effect |
%a abort (abandon editing) |
%c |
close (finish editing) |
%v |
print the current version number of ecce |
Sequences of commands may be enclosed in parentheses to form
compound commands.
Commands may be repeated, unconditionally or conditionally.
Operation |
Example |
Meaning/Effect |
0 or * |
|
indefinite repetition |
|
|
(repeat until failure)" |
|
r0 |
move file pointer to end of line |
|
(mr)0 |
find first blank line |
|
e-0 |
erase backwards to start of line
|
? |
|
optional execution |
|
|
(failure condition is ignored) |
|
((r61p)?m)0 |
print lines with more than 60 characters
|
, |
|
alternative execution |
|
|
(if first fails, execute next etc.) |
|
(r81lb,m)0 |
split lines with more than 80 characters |
|
(f/print/(v/printstring/,e5i/write/))* |
|
|
replace print by write except in printstring
|
\ |
|
inverted failure |
|
(mv'+'\)0 |
find next line starting with `+' |
A command line consisting solely of a number repeats the previous
command line the number of times specified.
Patterns may be delimited by any character except letters, digits
and those which have defined significance: for example, one can use:
" / $ > + . : = _
- /tmp/eccesaveNNNNNN
- Emergency save file. This is used when
ecce
cannot
write to the original file being edited. NNNNNN is the zero-filled process
ID.
- /tmp/eccenoteXNNNNNN
- Context file. These are used for holding secondary contexts, and are not
deleted when
ecce
exits. X is the context number,
and NNNNNN is the zero-filled process ID.
The ecce
utility exits 0 on
success, and >0 if an error occurs.
G. Toal,
A quick guide to G.Toal's ECCE-in-C for existing ECCE
users.
Hamish Dewar,
ECCE - revised specification,
1982.
L.D. Smith,
ECCE - The Edinburgh Compatible Context Editor,
1978.
G. Toal,
ECCE - a review.
Note that only the first reference is definitive for this
implementation, so some commands may be missing (or added) elsewhere.
However, the other documents may provide a good way of learning how to use
ecce
effectively.
This implementation is by Graham Toal, of
the Edinburgh Computer History Project. It is based on earlier
implementations by H. Dewar, University of Edinburgh, and H. Whitfield,
University of Newcastle upon Tyne.