An emacs is basically:
(defun emacs ()
(loop
(funcall (aref *keymap* (read-char)))
(when (display-needs-update-p (update-display)))))
This is the editor command loop.
Now of course, all the fun is in filling *keymap*! :-)
--
__Pascal Bourguignon__ http://www.informatimago.com/