Ecce: Edinburgh Compatible Context Editor

Ecce was designed in the 60's with two objectives: it should be powerful, and it should be small. Editors at that time were simple line-based programs - you would move to a given line by number and insert, delete, or replace the whole line. Very few editors had support for repeated commands or automatic text processing by macros. The limitation on size was because the machines of the day had anywhere between 8K and 32K of core (yes, real core!) and any room taken by the editor subtracted directly from the size of file you could edit. This also mean that most editors processed files sequentially, often buffering just a line at a time. Ecce buffered as much as possible, which in most cases was the entire file.

Hamish Dewar, who designed ECCE, was a compiler-writer, and used this experience to select a command-set which could be easily parsed and converted into an internal format which allowed complex commands to be built up cheaply - a bit like Forth's notion of threaded code. The result was that ECCE commands are regular, fast, and powerful.

Ecce was used as the standard text editor at Edinburgh for about 25 years and is still used by Edinburgh graduates of that era where-ever they now find themselves in the world (with much the same level of devotion that linux users of the same generation show for ex/vi). Ecce has been extended several times over the years and has spun off a couple of screen editors as well.

As well as offering one usable current implementation of Ecce in C, this site also hopes to document the historical developent of Ecce and show the various ports to different implementation languages that have been written over the years.

This site is maintained by Graham Toal <> who welcomes correspondence on Ecce or any subject that may be of interest to the Edinburgh Computer History Project.