EMACS

     By Kelly Roach.  Last revised 16-Sep-84.  This LISPUSERS package is named after the PDP-10 EMACS text editor developed at MIT.  This package implements, on top of TEDIT, most of the commonly used EMACS commands.  A former MAXC EMACS user, I now use the LISPUSERS package for both text editting and code editting.  The package has the same strengths as TEDIT: multiple windows, fonts, and mouse selection.  Additionally, the user has the speed and convenience of EMACS keyboard commands available to him.  There is less need to switch back and forth between keyboard and mouse, so that the user is less "mouse-bound."  The package supports paren balancing and lisp commands that make EMACS pleasant to use as an alternative code editor.  EMACS is continuing to be developed (espescially now that the author is relying on it).  Your comments, bugs, suggestions, etc. can be sent to EMACSSUPPORT↑.PA.
     I suggest users familiarize themselves with TEDIT and TEDIT documentation first, as EMACS is built on top of TEDIT.  To use EMACS, load {ERIS}<LISPUSERS>EMACS.DCOM.  You can either button EMACS in the background command menu or do
	(EMACS TEXT WINDOW DONTSPAWN PROPS)
where args TEXT, WINDOW, DONTSPAWN, and PROPS are used just as they
are with TEDIT's function TEDIT.  For the most part, EMACS behaves exactly like TEDIT.  The difference is that typing combinations of control characters will cause EMACS commands to be executed.
     The following commands are supported:
	↑A	Go to beginning of line
	↑B	Go back a char
	↑D	Delete a char
	↑E	Go to end of line
	↑F	Go forward a char
	↑K	Kill line
	↑L	Redisplay window
	↑N	Go down a line
	↑P	Go up a line
	↑S	Forward search
	↑T	Transpose chars
	↑V	Go forward a windowfull
	↑X↑V	Visit file
	↑X↑W	Write file
	↑X↑Z	EVAL following expression in EXEC process
	↑Z↑F	Forward an expression
	DEL	Delete back a char
	#↑A	Go to beginning of definition
	#↑E	Go to end of definition
	#↑K	Kill expression
	#>	Go to end of file
	#<	Go to beginning of file
	#B	Go back a word
	#D	Delete a word
	#E	DEDIT expression
	#F	Go forward a word
	#G	PRETTYPRINT expression
	#S	Steal top selection from DEDIT
	#V	Go down a windowfull
	#↑	Join lines
        #DEL    Delete back a word
	<TAB>   Indent a la LISP mode
	↑U      Repeat following command 4 times

     The following items are still in the wish list category.
	↑Y (remember deleted material)
	$XReplace String
	$XQuery Replace
	↑R (reverse searching, faster searching)
	↑Z↑B (nontrivial backward commands)
	$XAuto Fill
	$XAuto Save
	$XOccur
	$↑T, ↑X↑T (nontrivial transposes)

     There is some possibility for the user to customize his EMACS, but I haven't made this very easy to do yet.  You can, if you wish, add your own functions to any of the lists EMACS.LIST, EMACS.MLIST, and EMACS.XLIST.  The functions on these lists take a single EMACSSTREAM (i.e. TEDIT TEXTSTREAM) argument.  The ACCESSFNS EMACSSTREAM may be convenient for you to use.  You must do (EMACS.INIT) to have EMACS absorb your changes.