HomePage | RecentChanges | EditorIndex | TextEditorFamilies | Preferences

 VIsual Display ecce 

 Family: EdinburghFamily

A new editor based on a hybrid of a 1960's line-based text editor (ECCE, qv) and modern EMACS-like concepts of binding immediate-action sequences to keystrokes which are implemented behind the scenes by a programming language (in this case, the command-line language of ECCE). The *entire* user interface of VIDE is soft programmed, by initially learning ECCE commands and assigning them to keys. For example the simple 'cursor right key' is implemented by the ecce command sequence "(r,m)?" which means move right; if that fails, move down to the start of the next line; and if both commands fail, do not report an error (e.g., when you hit the end of file).

Both whole complex ECCE command lines, and multiple immediate-effect keystrokes, can be learned and assigned to any key as immediate-effect commands. All commands eventually decompose to ECCE command-line sequences internally.

This is an editor that is primarily a screen editor but which can invoke the power of a command-line editor to build more powerful commands from; this is contrasted with VECCE from the 1980's which was primarily a command line editor that had full-screen feedback. Although both editors have much in common, the difference in philosophy gives VIDE a much different user experience (like contrasting Emacs and VI), and allows VIDE to be implemented in much less code than VECCE. The ECCE component of VIDE is approximately 22K and so is the screen component (which relies on ncurses).

VIDE when completed (it is currently in its second iteration of prototyping) will be available from the Edinburgh Computer History Project website.

VIDE uses the well-known BufferGapMethod for its internal structure. The author's intention is to make VIDE an object lesson in how to write an editor (either screen or command line) suitable for an "Editors 101" type of class. It is small enough to be understood completely, within a semester.

HomePage | RecentChanges | EditorIndex | TextEditorFamilies | Preferences
Edit text of this page | View other revisions
Last edited April 26, 2009 10:05 am (diff)