Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!husc6!necntc!ncoast!allbery
From: nwd@j.cc.purdue.edu (Daniel Lawrence)
Newsgroups: comp.sources.misc
Subject: MicroEmacs 3.9 Manual (3 of 6)
Message-ID: <5816@ncoast.UUCP>
Date: Wed, 25-Nov-87 23:15:06 EST
Article-I.D.: ncoast.5816
Posted: Wed Nov 25 23:15:06 1987
Date-Received: Mon, 30-Nov-87 00:58:48 EST
Sender: allbery@ncoast.UUCP
Lines: 1469
Approved: allbery@ncoast.UUCP
X-Archive: comp.sources.misc/8711/14


Xall the directories listed in the "@b(PATH)" environment variable.  Then
Xit looks through a list of predefined standard directories which vary
Xfrom system to system.  Finally, failing all of these, it looks in the
Xcurrent directory.  This is also the same method EMACS uses to look up
Xany files to execute, and to find it's help file @b(EMACS.HLP). 
X@index(PATH environment variable) @index(HOME environment variable)
X@index(Help File)
X
X@index(switches)
X	On computers that call up EMACS via a command line process, such
Xas MSDOS and UNIX, there are different things that can be added to the
Xcommand line to control the way EMACS operates. These can be switches,
Xwhich are a dash ('-') followed by a letter, and possible other
Xparameters, or a startup file specifier, which is an at sign '@@'
Xfollowed by a file name.
X
X@begin(description)
X@@@\This causes the named file to be executed instead of the
Xstandard emacs.rc file before emacs reads in any other files.  More than
Xone of these can be placed on the command line, and they will be
Xexecuted in the order that they appear. 
X
X-A@\This flag causes emacs to automatically run the startup file
X"error.cmd" instead of emacs.rc. This is used by various C compilers for
Xerror processing (for example, Mark Williams C). @index(error parsing)
X
X-E@\The following source files on the command line can be edited (as
Xopposed to being in VIEW mode). This is mainly used to cancel the
Xeffects of the -v switch used previously in the same command line.
X
X-G@\Upon entering EMACS, position the cursor at the  line of
Xthe first file.
X
X-K@\This key tells emacs to place the source files in CRYPT
X@index(CRYPT mode) mode and read it in using  as the encryption
Xkey.  If no key is listed immediatly after the -K switch, EMACS will
Xprompt for a key, and not echo it as it is typed. 
X
X-R@\This places EMACS in "restricted mode"@index(restricted mode)
X@index(BBS) where any commands allowing the user to read or write any
Xfiles other than the ones listed on the command line are disabled. Also
Xall commands allowing the user access to the operating system are
Xdisabled. This makes EMACS very useful as a "safe" environment for use
Xwithin other applications and especially used as a remote editor for a
XBBS or electronic bulletin board system.
X
X-S@\After EMACS is started, it automatically searches for
X in the first source file.
X
X-V@\This tells EMACS that all the following sources files on the command
Xline should be in VIEW mode to prevent any changes being made to them.
X@end(description)
X@appendix(MicroEMACS commands)
X
X	Below is a complete list of the commands in EMACS, the keys
Xnormally used to do the command, and what the command does.  Remember,
Xon some computers there may also be additional ways of using a command
X(cursor keys and special function keys for example). 
X
X@begin(verbatim)
X@u(Command			Binding		Meaning)
Xabort-command		 ^G	This allows the user to abort out of any
X				command that is waiting for input
X
Xadd-mode		 ^X-M	Add a mode to the current buffer
X
Xadd-global-mode 	 M-M	Add a global mode for all new buffers
X
Xapropos 		 M-A	List out commands whose name contains
X				the string specified
X
Xbackward-character	 ^B	Move one character to the left
X
Xbegin-macro		 ^X-(	Begin recording a keyboard macro
X
Xbeginning-of-file	 M-<	Move to the beginning of the file in
X				the current buffer
X
Xbeginning-of-line	 ^A	Move to the beginning of the current line
X
Xbind-to-key		 M-K	Bind a key to a function
X
Xbuffer-position 	 ^X-=	List the position of the cursor in the
X				current window on the command line
X
Xcase-region-lower	 ^X-^L	Make a marked region all lower case
X
Xcase-region-upper	 ^X-^U	Make a marked region all upper case
X
Xcase-word-capitalize	 M-C	Capitalize the following word
X
Xcase-word-lower 	 M-L	Lower case the following word
X
Xcase-word-upper 	 M-U	Upper case the following word
X
Xchange-file-name	 ^X-N	Change the name of the file in the
X				current buffer
X
Xchange-screen-size	 M-^S	Change the number of lines of the screen
X				currently being used
X
Xchange-screen-width	 M-^T	Change the number of columns of the
X				screen currently being used
X
Xclear-and-redraw	 ^L	Clear the physical screen and redraw it
X
Xclear-message-line	(none)	Clear the command line
X
Xcopy-region		 M-W	Copy the currently marked region into
X				the kill buffer
X
Xcount-words		 M-^C	Count how many words, lines and
X				characters are in the current marked region
X
Xctlx-prefix		 ^X	Change the key used as the ^X prefix
X
Xdelete-blank-lines	 ^X-^O	Delete all blank lines around the cursor
X
Xdelete-buffer		 ^X-K	Delete a buffer which is not being
X				currently displayed in a window
X
Xdelete-mode		 ^X-^M	Turn off a mode in the current buffer
X
Xdelete-global-mode	 M-^M	Turn off a global mode
X
Xdelete-next-character	 ^D	Delete the character following the cursor
X
Xdelete-next-word	 M-D	Delete the word following the cursor
X
Xdelete-other-windows	 ^X-1	Make the current window cover the entire
X				screen
X
Xdelete-previous-character^H	Delete the character to the left of the
X				cursor
X
Xdelete-previous-word	 M-^H	Delete the word to the left of the cursor
X
Xdelete-window		 ^X-0	Remove the current window from the screen
X
Xdescribe-bindings	(none)	Make a list of all legal commands
X
Xdescribe-key		 ^X-?	Describe what command is bound to a
X				keystroke sequence
X
Xdetab-line		 ^X-^D	Change all tabs in a line to the
X				equivelant spaces
X
Xend-macro		 ^X-)	stop recording a keyboard macro
X
Xend-of-file		 M->	Move cursor to the end of the current buffer
X
Xend-of-line		 ^E	Move to the end of the current line
X
Xentab-line		 ^X-^E	Change multiple spaces to tabs where
X				possible
X
Xexchange-point-and-mark  ^X-^X	Move cursor to the last marked spot,
X				make the original position be marked
X
Xexecute-buffer		(none)	Execute a buffer as a macro
X
Xexecute-command-line	(none)	Execute a line typed on the command
X				line as a macro command
X
Xexecute-file		 FNB	Execute a file as a macro
X
Xexecute-macro		 ^X-E	Execute the keyboard macro (play back
X				the recorded keystrokes)
Xexecute-macro-	(none)	Execute numbered macro  where  is
X				an integer from 1 to 40
X
Xexecute-named-command	 M-X	Execute a command by name
X
Xexecute-procedure	 M-^E	Execute a procedure by name
X
Xexecute-program		^X-$	Execute a program directly (not through
X				an intervening shell)
X
Xexit-emacs		 ^X-^C	Exit EMACS. If there are unwritten,
X				changed buffers EMACS will ask to confirm
X
Xfill-paragraph		 M-Q	Fill the current paragraph
X
Xfilter-buffer		 ^X-#	Filter the current buffer through an
X				external filter
X
Xfind-file		 ^X-^F	Find a file to edit in the current window
X
Xforward-character	 ^F	Move cursor one character to the right
X
Xgoto-line		 M-G	Goto a numbered line
X
Xgoto-matching-fence	 M-^F	Goto the matching fence
X
Xgrow-window		 ^X-^	Make the current window larger
X
Xhandle-tab		 ^I	Insert a tab or set tab stops
X
Xhunt-forward		 FN=	Hunt for the next match of the last
X				search string
X
Xhunt-backward		 FN>	Hunt for the last match of the last
X				search string
X
Xhelp			 M-?	Read EMACS.HLP into a buffer and display it
X
Xi-shell 		 ^X-C	Shell up to a new command processor
X
Xincremental-search	 ^X-S	Search for a string, incrementally
X
Xinsert-file		 ^X-^I	insert a file at the cursor in the
X				current file
X
Xinsert-space		 ^C	Insert a space to the right of the cursor
X
Xinsert-string		(none)	Insert a string at the cursor
X
Xkill-paragraph		 M-^W	Delete the current paragraph
X
Xkill-region		 ^W	Delete the current marked region, moving
X				it to the kill buffer
X
Xkill-to-end-of-line	 ^K	Delete the rest of the current line
X
Xlist-buffers		 ^X-^B	List all existing buffers
X
Xmeta-prefix		 	Key used to precede all META commands
X
Xmove-window-down	 ^X-^N	Move all the lines in the current window down
X
Xmove-window-up		 ^X-^P	Move all the lines in the current window up
X
Xname-buffer		 M-^N	Change the name of the current buffer
X
Xnewline 		 ^M	Insert a  at the cursor
X
Xnewline-and-indent	 ^J	Insert a  at the cursor and indent
X				the new line the same as the preceeding line
X
Xnext-buffer		 ^X-X	Bring the next buffer in the list into
X				the current window
X
Xnext-line		 ^N	Move the cursor down one line
X
Xnext-page		 ^V	Move the cursor down one page
X
Xnext-paragraph		 M-N	Move cursor to the next paragraph
X
Xnext-window		 ^X-O	Move cursor to the next window
X
Xnext-word		 M-F	Move cursor to the beginning of the
X				next word
X
Xnop			 M-FNC	Does nothing
X
Xopen-line		 ^O	Open a line at the cursor
X
Xoverwrite-string	(none)	Overwrite a string at the cursor
X
Xpipe-command		 ^X-@@	Execute an external command and place
X				its output in a buffer
X
Xprevious-line		 ^P	Move cursor up one line
X
Xprevious-page		 ^Z	Move cursor up one page
X
Xprevious-paragraph	 M-P	Move back one paragraph
X
Xprevious-window 	 ^X-P	Move the cursor to the last window
X
Xprevious-word		 M-B	Move the cursor to the beginning of the
X				word to the left of the cursor
X
Xquery-replace-string	 M-^R	Replace all of one string with another
X				string, interactively querying the user
X
Xquick-exit		 M-Z	Exit EMACS, writing out all changed buffers
X
Xquote-character 	 ^Q	Insert the next character literally
X
Xread-file		 ^X-^R	Read a file into the current buffer
X
Xredraw-display		 M-^L	Redraw the display, centering the
X				current line
X
Xresize-window		 ^X-W	Change the number of lines in the
X				current window
X
Xrestore-window		(none)	Move cursor to the last saved window
X
Xreplace-string		 M-R	Replace all occurences of one string
X				with another string from the cursor
X				to the end of the buffer
X
Xreverse-incremental-search^X-R	Search backwards, incrementally
X
Xrun			 M-^E	Execute a named procedure
X
Xsave-file		 ^X-^S	Save the current buffer if it is changed
X
Xsave-window		(none)	Remember current window (to restore later)
X
Xscroll-next-up		 M-^Z	Scroll the next window up
X
Xscroll-next-down	 M-^V	Scroll the next window down
X
Xsearch-forward		 ^S	Search for a string
X
Xsearch-reverse		 ^R	Search backwards for a string
X
Xselect-buffer		 ^X-B	Select a buffer to display in the
X				current window
X
Xset			 ^X-A	Set a variable to a value
X
Xset-encryption-key	 M-E	Set the encryption key of the current buffer
X
Xset-fill-column 	 ^X-F	Set the current fill column
X
Xset-mark			Set the mark
X
Xshell-command		 ^X-!	Causes an external shell to execute
X				a command
X
Xshrink-window		 ^X-^Z	Make the current window smaller
X
Xsplit-current-window	 ^X-2	Split the current window in two
X
Xstore-macro		(none)	Store the following macro lines to a
X				numbered macro
X
Xstore-procedure		(none)	Store the following macro lines to a
X				named procedure
X
Xtranspose-characters	 ^T	Transpose the character at the cursor
X				with the character to the left
X
Xtrim-line		 ^X-^T	Trim any trailing whitespace from line
X
Xunbind-key		 M-^K	Unbind a key from a function
X
Xuniversal-argument	 ^U	Execute the following command 4 times
X
Xunmark-buffer		 M-~	Unmark the current buffer (so it is
X				no longer changed)
X
Xupdate-screen		(none)	Force a screen update during macro execution
X 
Xview-file		 ^X-^V	Find a file,and put it in view mode
X 
Xwrap-word		 M-FNW	Wrap the current word, this is an
X				internal function
X 	
Xwrite-file		 ^X-^W	Write the current buffer under a new
X				file name
X
Xwrite-message		(none)	Display a string on the command line
X
Xyank			 ^Y	yank the kill buffer into the current
X				buffer at the cursor
X@end(verbatim)
X@appendix(MicroEMACS Bindings)
X
X	Below is a complete list of the key bindings used in MicroEMACS.
XThis can be used as a wall chart reference for MicroEMACS commands.
X
X@begin(verbatim)
X@center(@b[Default Key Bindings for MicroEmacs 3.9e])
X
X ^A   Move to start of line	      ESC A   Apropos (list some commands)
X ^B   Move backward by characters     ESC B   Backup by words
X ^C   Insert space		      ESC C   Initial capitalize word
X ^D   Forward delete		      ESC D   Delete forward word
X ^E   Goto end of line		      ESC E   Reset Encryption Key
X ^F   Move forward by characters      ESC F   Advance by words
X ^G   Abort out of things	      ESC G   Go to a line
X ^H   Backward delete		      
X ^I   Insert tab/Set tab stops
X ^J   Insert , then indent 		    
X ^K   Kill forward		      ESC K   Bind Key to function
X ^L   Refresh the screen	      ESC L   Lower case word
X ^M   Insert 		      ESC M   Add global mode
X ^N   Move forward by lines	      ESC N   Goto End paragraph
X ^O   Open up a blank line	      
X ^P   Move backward by lines	      ESC P   Goto Begining of paragraph
X ^Q   Insert literal		      ESC Q   Fill current paragraph
X ^R   Search backwards		      ESC R   Search and replace
X ^S   Search forward
X ^T   Transpose characters		       
X ^U   Repeat command four times       ESC U   Upper case word
X ^V   Move forward by pages	      ESC V   Move backward by pages
X ^W   Kill region		      ESC W   Copy region to kill buffer
X ^Y   Yank back from killbuffer       ESC X   Execute named command
X ^Z   Move backward by pages	      ESC Z   Save all buffers and exit
X
X ESC ^C   Count words in region       ESC ~   Unmark current buffer
X ESC ^E   Execute named procedure
X ESC ^F   Goto matching fence	      ESC !   Reposition window
X ESC ^H   Delete backward word	      ESC <   Move to start of buffer
X ESC ^K   Unbind Key from function    ESC >   Move to end of buffer
X ESC ^L   Reposition window	      ESC .   Set mark
X ESC ^M   Delete global mode	      ESC space    Set mark
X ESC ^N   Rename current buffer       ESC rubout   Delete backward word
X ESC ^R   Search & replace w/query	  rubout   Backward delete
X ESC ^S   Change screen rows
X ESC ^T   Change screen columns
X ESC ^V   Scroll next window down
X ESC ^W   Delete Paragraph
X ESC ^Z   Scroll next window up
X
X ^X ?	Describe a key		   ^X !   Run 1 command in a shell
X ^X =	Show the cursor position   ^X @@   Pipe shell command to buffer
X ^X ^	Enlarge display window	   ^X #   Filter buffer thru shell filter
X ^X 0	Delete current window	   ^X $   Execute an external program
X ^X 1	Delete other windows	   ^X (   Begin macro
X ^X 2	Split current window       ^X )   End macro
X				   ^X A   Set variable value
X ^X ^B	 Display buffer list	   ^X B   Switch a window to a buffer
X ^X ^C	 Exit MicroEMACS	   ^X C   Start a new command processor
X ^X ^D   Detab line		   ^X D   Suspend MicroEMACS (BSD4.2 only)
X ^X ^E	 Entab line		   ^X E   Execute macro
X ^X ^F	 Find file		   ^X F   Set fill column
X ^X ^I	 Insert file
X				   ^X K   Delete buffer
X ^X ^L	 Lower case region
X ^X ^M	 Delete Mode		   ^X M   Add a mode
X ^X ^N	 Move window down	   ^X N   Rename current filename
X ^X ^O	 Delete blank lines	   ^X O   Move to the next window
X ^X ^P	 Move window up 	   ^X P   Move to the previous window
X ^X ^R	 Get a file from disk	   ^X R   Incremental reverse search
X ^X ^S	 Save current file	   ^X S   Incremental forward search
X ^X ^T   Trim line                 (Incremental search
X ^X ^U	 Upper case region                not always availible)
X ^X ^V	 View file
X ^X ^W	 Write a file to disk	   ^X W   resize Window
X ^X ^X	 Swap "." and mark	   ^X X   Use next buffer
X ^X ^Z	 Shrink window		   ^X Z   Enlarge display window
X
X@u(Usable Modes)
XWRAP	 Lines going past right margin "wrap" to a new line
XVIEW	 Read-Only mode where no modifications are allowed
XCMODE	 Change behavior of some commands to work better with C
XEXACT	 Exact case matching on search strings
XOVER	 Overwrite typed characters instead of inserting them
XCRYPT	 Current buffer will be encrypted on write, decrypted on read
XMAGIC	 Use regular expression matching in searches
XASAVE	 Save the file every 256 inserted characters
X
XWHITE/CYAN/MAGENTA/YELLOW/BLUE/RED/GREEN/BLACK	Sets foreground color
Xwhite/cyan/magenta/yellow/blue/red/green/black	Sets background color
X@end(verbatim)
X@newpage
X@appendix(Supported machines)
X
X	The following table lists all the hardware/compilers for which I
Xcurrently support MicroEMACS.  This is not exclusive of all machines
Xwhich MicroEMACS will run on, but I have either run it myself, or had a
Xfirst hand report of it running.
X
X@begin(verbatim)
X@u(Hardware	OS		Compiler	Comments)
XVAX 780		UNIX V5		native
X		UNIX V7		native
X		BSD 4.2		native		job control supported
X		*VMS		native		only some terminals supported
X
XNCR Tower	UNIX V5		native
X
XFortune 32:16	UNIX V7		native
X
XIBM-PC		MSDOS		LATTICE	2.15	Large CODE/Large DATA
X		 2.0 & 3.2	AZTEC 3.4e	Small CODE/Large DATA
X				TURBO C v1.00	LARGE memory model
X				*MSC 4.0
X				*MWC 86
X		SCO XENIX	native
X
XHP150		MSDOS		Lattice 2.15	Function key labels
X						for the touch screen
X
XHP110		MSDOS		Lattice 2.15
X				Aztec 3.4e
X
X*Data General 10
X		MSDOS		Lattice 2.15
X
X*Texas Instruments Professional
X		MSDOS		Lattice 2.15
X
XAmiga		Intuition	Lattice 3.03	no mouse or menus yet
X				*Aztec 3
X
XST520		TOS		Mark Williams C Spawns under MSH
X				Lattice 3.10	(no shell commands)
X
X@u[Systems to be supported (ie some code is already written:)]
XMacintosh	Finder 5.0	Aztec
X
X*means that I do not own or have access to the listed compiler and/or
X machine and must rely upon others to help support it. 
X@end(verbatim)
X@newpage
X@appendix(Machine Dependent Notes)
X
X	This appendix lists some notes specific to individual
Ximplementations of MicroEMACS.  Every attempt has been made to allow
XEMACS to be identical on all machines, but we have also tried to take
Xadvantage of function keys, cursor keys, mice, and special screen modes
Xwhere possible.
X
X@appendixsection(IBM-PC/XT/AT and its clones)
X
X	The IBM-PC family of computers is supported with a variety of
Xdifferent display adapters.  EMACS will attempt to discover what adapter
Xis connected and use the proper driver for it.	Below is a list of the
Xcurrently supported video adapters:
X
X@begin(verbatim)
X@u(Adapter			$sres		Original mode used)
XMonochrome Graphics Adapter	MONO		MONO
XColor Graphics Adapter		CGA		CGA
XEnhanced Graphics Adapter	EGA		CGA
X@end(verbatim)
X
X	EMACS also takes advantege of various function keys and the keys
Xon the keypad on an IBM-PC.  The function keys are initially not bound
Xto any particular functions (except by the emacs.rc startup file), but
Xthe keypad keys do default to the following:
X
X@begin(verbatim)
X@u(Keypad key	Function)
XHome		beginning-of-file
XCSRS UP		previous-line
XPg Up		previous-page
XCSRS LEFT	backward-character
XCSRS RIGHT	forward-character
XEnd		end-of-file
XCSRS DOWN	next-line
XPg Dn		Next-page
X@end(verbatim)
X
X	All these special keys are indicated in EMACS macroes by use of
Xthe @b(FN) prefix.  Below is a list of many of the keys and the codes
Xused to specify them.  Also the codes may be gotten by using the
Xdescribe-key (^X ?) command on the suspect key.
X@newpage
X@begin(verbatim)
X			IBM PC function keys in MicroEmacs
X
X	function	Function	^function	Alt-function
X f1)	  FN;		  FNT		  FN^		  FNh
X f2)	  FN<		  FNU		  FN_		  FNi
X f3)	  FN=		  FNV		  FN`		  FNj
X f4)	  FN>		  FNW		  FNa		  FNk
X f5)	  FN?		  FNX		  FNb		  FNl
X f6)	  FN@@		  FNY		  FNc		  FNm
X f7)	  FNA		  FNZ		  FNd		  FNn
X f8)	  FNB		  FN[		  FNe		  FNo
X f9)	  FNC		  FN\		  FNf		  FNp
Xf10)	  FND		  FN]		  FNg		  FNq
X
Xhome)	  FNG				  FNw
XCsUp)	  FNH
XPgUp)	  FNI				  FNa(umlaut) {Alt 132}
XCsLf)	  FNK				  FNs
X 5  )
XCsRt)	  FNM				  FNt
X End)	  FNO				  FNu
XCsDn)	  FNP
XPgDn)	  FNQ				  FNv
X Ins)	  FNR
X Del)	  FNS
X@end(verbatim)
X@newpage
X@appendixsection(HP 150)
X
X	This machine from Hewlett Packard is very unusual for an MSDOS
Xmachine.  It has a touch screen and is very function key oriented.  An
Xadditional command, @i(label-function-key)@index(label-function-key)
Xallows you to place labels on the on screen function key labels.  A
Xnumeric argument indicates which function key to label (one through
Xeight) and then the program prompts for a 16 character label, which will
Xbe used as two lines of eight characters.  To label function key three
Xwith "save file" from a macro, you would use:
X
X@verbatim(3 label-function-key "save    file")
X
X	Notice the 4 spaces after "save".  This forces "file" to begin on
Xthe second line of the label.
X@newpage
X@appendixsection(Atari 520/1040ST)
X
X	The ATARI ST family of computers have a dual personality.  They
Xmay use either a monochrome or a color screen.	EMACS supports two
Xscreen resolutions on each monitor. 
X
X@begin(verbatim)
X@u(Monitor $sres size #color $palette format)
XColor	LOW	40x25	16	000111222333444555666777
X	MEDIUM	80x25	4	000111222333
XMono	HIGH	80x25	2	000
X	DENSE	80x50	2	000
X@end(verbatim)
X
X	The $palette environment variable can be used to change what
Xcolor is associated with each color name.  With a color monitor, each
Xgroup of three digits indicates an octal number specifying the RED,
XGREEN and BLUE levels of that color.  Each color digit can vary from 0
Xto 7.  For example, the initial setting of $palette in LOW resolution is:
X
X@begin(verbatim)
X	000700070770007707077777
X
X	which broken up is:
X
X	000 700 070 770 007 707 077 777
X
X	which means:
X
X	000	Black
X	700	Red
X	070	Green
X	770	Yellow
X	007	Blue
X	707	Magenta
X	077	Cyan
X	777	White
X@end(verbatim)
X
X	Also the mouse generates FN prefix codes when moved, or when one
Xof the two buttons is pressed.	Initially the movement of the mouse is
Xbound to movement of the cursor, and the left mouse button generates a
Xset-mark (M-space) command.  The cursor keys and the function keys are
Xbound similarly to to IBM-PC.
X
X	Files generated by EMACS on the ATARI ST have a single return
Xcharacter at the end of each line, unlike the desktop files which want
Xto have tow returns. This makes it display files strangly from GEM's
X[SHOW] option, but makes the files port to other computers much nicer.
X
X	Currently, when operating under the Mark Williams MSH program,
XEMACS can shell out and perform external commands. This capability will
Xbe added later for the Beckmeyer shell and under GEMDOS.
X@newpage
X@appendixsection(Amiga 1000)
X
X	The Commodore AMIGA 1000 version of MicroEMACS does not have
Xextensive support of the mouse or of pull down menus as of yet.  It does
Xhowever come up in a window, and it is possible to re-size it to run in
Xdifferent sized windows.  The @b(M-^S) @i(change-screen-size)
X@index(change-screen-size) takes its numeric argument as the new number
Xof lines for EMACS to use.  The @b(M-^T) @i(change-screen-width)
X@index(change-screen-width) command allows you to change the number of
Xcolumns EMACS will use.  The defaults for these are 23 lines and 77
Xcharacters across for a full screen window.
X
X@center(Note about Compiling MicroEMACS)
X
X@begin(quotation)
X	If you are compiling the sources on the AMIGA to produce an
Xexecutable image, and you are using the Lattice compiler, be sure to
Xgive the CLI command 'STACK 40000' before compiling to make sure the
Xcompiler has sufficient stack space to successfully complete
Xcompiliation.
X@end(quotation)
X@newpage
X@appendixsection(UNIX V5, V7, and BSD4.[23])
X
X	MicroEMACS under UNIX utilizes the @b(TERMCAP) @index(termcap)
Xlibrary to provide machine independent screen functions.  Make sure that
Xtermcap is availible and properly set on your account before attempting
Xto use MicroEMACS. 
X
X	Under systems which support job control, you can use the
X@b(^X-D) @i(suspend-emacs) @index(suspend-emacs) command to place EMACS
Xinto the background.  This carries a much smaller overhead than bringing
Xup a new shell under EMACS.  EMACS will properly redraw the screen when
Xyou bring it back to the foreground.
X
X	If the symbol VT100 has been set to 1 in the @i(estruct.h)
Xoptions file, EMACS will recognize the key sequence [ as the lead
Xin sequence for the FN function key prefix.
X
X	With the addition of some very machine/operating system specific
Xcode, EMACS can prevent two or more people from modifying the same file
Xat the same time.  @index(file locking) The upper level of a set of
Xfunctions to provide file locking exist in the source file @b(LOCK.C). 
XIt requires two machine specific functions written and linked into EMACS
Xfor it to operate properly. 
X
X@begin(verbatim)
X	char *dolock(fname)
X
X	char *fname;
X
X	dolock() locks a file, preventing others from modifying it. If
X	it succeeds, it returns NULL, otherwise it returns a pointer to
X	a string in the form "LOCK ERROR: explaination".
X
X	char *undolock(fname)
X
X	char *fname;
X
X	undolock() unlocks a file, allowing others to modifying it. If
X	it succeeds, it returns NULL, otherwise it returns a pointer to
X	a string in the form "LOCK ERROR: explaination".
X@end(verbatim)
X@newpage
X@appendix(Mode Flags)
X
X	The two environment variables, $cmode and $gmode, contain a
Xnumber the corresponds to the modes set for the current buffer and
Xthe editor as a whole.  These are encoded as the sum of the following
Xnumbers for each of the possible modes:
X
X@begin(verbatim)
XWRAP	  1		Word wrap
XCMODE	  2		C indentation and fence match
XSPELL	  4		Interactive spell checking (Not Implemented Yet)
XEXACT	  8		Exact matching for searches
XVIEW	 16		Read-only buffer
XOVER	 32		Overwrite mode
XMAGIC	 64		Regular expressions in search
XCRYPT	128		Encrytion mode active
XASAVE	256		Auto-save mode
X@end(verbatim)
X
X	So, if you wished to set the current buffer to have CMODE,
XEXACT, and MAGIC on, and all the others off, you would add up the values
Xfor those three, CMODE 2  +  EXACT 8  +  MAGIC 64 = 74, and use a
Xstatement like:
X
Xset $cmode 74
X
X	or, use the binary or operator to combine the different modes:
X
Xset $cmode &bor &bor 2 8 64
X
X@flushleft(@big[Internal Flags])
X
X	Some of the ways EMACS controls its internal functions can be
Xmodified by the value in the $gflags environment variable.  Each bit in
Xthis variable will be used to control a different function.
X
X@begin(verbatim)
XGFFLAG		1	If this bit is set to zero, EMACS will not
X			automatically switch to the buffer of the
X			first file after executing the startup macros.
X@end(verbatim)
FRIDAY_NIGHT
echo extracting - emacs.txt
sed 's/^X//' > emacs.txt << 'FRIDAY_NIGHT'
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X                          MicroEMACS
X
X                          Full Screen Text Editor
X                          Reference Manual (preliminary draft)
X
X                          Version 3.9e
X                          November 4, 1987
X
X                          (C)opyright 1987 by Daniel M. Lawrence
X                          Reference Manual (C)opyright 1987
X                                  by Brian Straight and Daniel M. Lawrence
X                          All Rights Reserved
X
X                          MicroEMACS 3.9e  can  be  copied  and distributed
X          freely
X                          for any non-commercial purposes. MicroEMACS  3.9e
X          can
X                          only  be  incorporated into  commercial  software
X          with
X                          the permission of the current author.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X          Introduction
X
X                  MicroEMACS is a tool for creating and changing documents,
X          programs, and other text  files.   It is both relatively easy for
X          the novice to  use,  but  also  very  powerful in the hands of an
X          expert. MicroEMACS can be extensively customized for the needs of
X          the individual user.
X
X                  MicroEMACS allows  several files to be edited at the same
X          time.  The  screen  can be split into different windows, and text
X          may  be  moved  freely from one window to the next.  Depending on
X          the  type  of  file  being  edited, MicroEMACS can change how  it
X          behaves to make editing simple.    Editing  standard  text files,
X          program files and  word  processing documents are all possible at
X          the same time.
X
X                  There are extensive  capabilities to make word processing
X          and editing  easier.  These include commands for string searching
X          and replacing,  paragraph  reformatting  and  deleting, automatic
X          word wrapping,  word move and deletes, easy case controlling, and
X          automatic word counts.
X
X                  For complex and  repetitive editing tasks editing macroes
X          can be written.  These macroes  allow  the user a great degree of
X          flexibility in determining how MicroEMACS behaves.  Also, any and
X          all the commands  can  be  used  by any keystroke by changing, or
X          rebinding, what commands various keys  are  connected,  or bound,
X          to.
X
X                  Special features are also available to perform  a diverse
X          set of  operations such as file encryption, automatic backup file
X          generation, entabbing  and  detabbing  lines,  executing  of  DOS
X          commands and  filtering of text through other programs (like SORT
X          to allow sorting text).
X
X          History
X
X                  EMACS was originally a  text  editor  written  by Richard
X          Stahlman  at  MIT  in  the  early  1970s  for  Digital  Equipment
X          computers. Various versions, rewrites  and  clones  have  made an
X          appearence since.
X
X                  This version of MicroEMACS is derived  from  code written
X          by Dave G. Conroy in 1985.  Later modifications were performed by
X          Steve  Wilhite  and  George  Jones.   In December of 1985  Daniel
X          Lawrence picked up the then current source (version 2.0) and made
X          extensive modifications and additions  to  it  over the course of
X          the next two years.  Updates and support for the  current version
X          are still availible.  The current program author can be contacted
X          by writing to:
X
X                  USMAIL: Daniel Lawrence
X                          617 New York St
X                          Lafayette, IN 47901
X
X
X
X
X
X
X
X
X
X
X
X                  UUCP:   ihnp4!pur-ee!pur-phy!duncan!lawrence
X                  ARPA:   nwd@j.cc.purdue.edu
X                  FIDO:   Fido 201/2 The Programmer's Room (317) 742-5533
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X          Basic Concepts                        MicroEMACS Reference Manual
X
X
X
X
X
X
X
X
X                                      Chapter 1
X
X                                   Basic Concepts
X
X
X                  The current version of MicroEMACS  is  3.9e  (Third major
X          re-write, ninth public release,  fifth  minor  edit), and for the
X          rest of this document,  we  shall simply refer to this version as
X          "EMACS".  Any modifications for  later versions will be listed in
X          the appendixes at the end of this manual.
X
X
X          1.1  Keys and the Keyboard
X
X
X                  Many times throughout  this  manual  we  will  be talking
X          about commands and the  keys  on the keyboard needed to use them.
X          There  are  a  number of "special" keys which can be used and are
X          listed here:
X
X                     NewLine which is also called RETURN or ENTER, this
X                         key is used to end different commands.
X
X          ^              The control key can be used before  any alphabetic
X                         character and some symbols.  For example, ^C means
X                         to hold down the   key and type the C key
X                         at the same time.
X
X          ^X             The CONTROL-X key is used at the beginning of many
X                         different commands.
X
X          META or M-     This is a special EMACS  key  used  to  begin many
X                         commands as well.   This  key  is pressed and then
X                         released  before  typing  the  next character.  On
X                         most systems, this is the  key, but it can be
X                         changed.  (consult appendix E to learn what key is
X                         used for META on your computer).
X
X                  Whenever a command is described, the manual will list the
X          actual  keystrokes needed to execute it  in  boldface  using  the
X          above conventions, and also the name of the command in italics.
X
X
X          1.2  Getting Started
X
X
X                  In  order to use EMACS, you must call  it  up  from  your
X          system or computer's command prompt.  On UNIX and MSDOS machines,
X
X
X          1
X
X
X
X
X
X
X          MicroEMACS Reference Manual                        Basic Concepts
X
X
X          just type "emacs" from the main command prompt and follow it with
X          the    or   key (we will refer to this key as 
X          for  "new-line"  for  the remainder of  this  manual).    On  the
X          Macintosh, the Amiga, the ATARI ST and other icon based operating
X          systems, double click on the uEMACS icon. Shortly  after  this, a
X          screen similar to the one below should appear.
X
X
X          1.3  Parts and Pieces
X
X
X                  The screen is divided into  a number of areas or windows.
X          On some systems  the  top  window  contains  a  function  list of
X          unshifted and shifted function keys.   We will discuss these keys
X          later.  Below  them  is an EMACS mode line which, as we will see,
X          informs you of the present mode of operation  of  the editor--for
X          example "(WRAP)" if  you  set  EMACS  to  wrap at the end of each
X          line. Under the mode  line  is the text window where text appears
X          and is manipulated.    Since  each  window has its own mode line,
X          below the text window is it's  mode  line.   The last line of the
X          screen is the command line where EMACS takes commands and reports
X          on what it is doing.
X
X          ===============================================================================
X          f1 search-> f2 <-search |    MicroEMACS:  Text Editor
X          f3 hunt->   f4 <-hunt   |
X          f5 fkeys    f6 help     |  Available function key Pages include:
X          f7 nxt wind f8 pg[    ] |    WORD  PROG  BOX
X          f9 save     f10 exit    |  [use the f8 key to load Pages]
X          ===============================================================================
X          -- MicroEMACS 3.9e () -- Function Keys
X          ---------------------------------------
X          ===============================================================================
X
X
X
X
X
X
X
X
X
X
X
X
X          ===============================================================================
X          -- MicroEMACS 3.9e () -- Main
X          ------------------------------------------------
X          ===============================================================================
X
X
X
X
X
X
X
X                                                                          2
X
X
X
X
X
X
X          Basic Concepts                        MicroEMACS Reference Manual
X
X
X                          Fig 1:  EMACS screen on an IBM-PC
X
X
X          1.4  Entering Text
X
X
X                  Entering text in EMACS is  simple.    Type  the following
X          sentence fragment:
X
X               Fang Rock lighthouse, center of a series  of mysterious
X               and
X
X          The text is displayed at the top of the text window.  Now type:
X
X               terrifying events at the turn of the century
X
X                  Notice the text to the  left of the cursor disappears and
X          a '$' sign appears.    Don't  panic--your  text is safe!!! You've
X          just discovered that EMACS doesn't "wrap" text to  the  next line
X          like most word processors  unless  you hit .  But since EMACS
X          is used for both word processing, and text editing, it has  a bit
X          of a dual personality.   You  can  change  the  way  it  works by
X          setting various modes.  In this case, you need to set  WRAP mode,
X          using the add-mode command, by typing ^X-M.  The command  line at
X          the base of the screen will prompt you for the  mode  you wish to
X          add.   Type  wrap  followed  by the  key and any text you now
X          enter  will  be  wrapped.  However, the command doesn't wrap text
X          already entered.   To  get  rid  of  the  truncated  line, delete
X          characters with the  key until the '$' goes away.  Now
X          type in the words you deleted,  watch  how EMACS goes down to the
X          next line at the right time.  (In some versions of EMACS, WRAP is
X          a  default  mode  in which case you don't have to worry about the
X          instructions relating to adding this mode.)
X
X                  Now let's type  a  longer  insert.   Hit  a couple of
X          times to tab down from the text you just entered.    Now type the
X          following paragraphs.   Press   twice to indicate a paragraph
X          break.
X
X               Fang Rock lighthouse, center of a series  of mysterious
X               and terrifying events at  the  turn  of the century, is
X               built  on a rocky island a few  miles  of  the  Channel
X               coast.  So small is  the island that wherever you stand
X               its rocks are wet with sea spray.
X
X               The lighthouse tower is in the center of the island.  A
X               steep  flight  of  steps leads to the heavy door in its
X               base.  Winding stairs lead up to the crew room.
X
X
X
X
X
X
X
X
X          3
X
X
X
X
X
X
X          MicroEMACS Reference Manual                        Basic Concepts
X
X
X          1.5  Basic cursor movement
X
X
X                  Now let's practice moving around in this text.    To move
X          the cursor back  to  the word "Winding," enter M-B previous-word.
X          This command moves the cursor backwards by one word  at  a  time.
X          Note you have to press the key combination every time  the cursor
X          steps back by one word.   Continuously pressing META and toggling
X          B  produces  an  error  message.    To  move  forward to the word
X          "stairs" enter M-F, which moves the cursor forward by one word at
X          a time.
X
X                  Notice that EMACS commands  are  usually  mnemonic--F for
X          forward, B for backward, for example.
X
X                  To move the  cursor  up one line, enter ^P previous-line,
X          down one line ^N next-line.  Practice this movement by moving the
X          cursor to the word "terrifying" in the second line.
X
X                  The  cursor  may  also be moved forward  or  backward  in
X          smaller increments.  To move forward by one  character,  enter ^F
X          forward-character,  to  move  backward,  ^B   backward-character.
X          EMACS also allows you to specify a number which is  normally used
X          to  tell  a  command to execute  many  times.    To  repeat  most
X          commands, press META and  then  the  number  before you enter the
X          command.   Thus,  the  command  META  5  ^F (M-5^F) will move the
X          cursor forward by five characters.  Try moving around in the text
X          by using these commands.    For extra practice, see how close you
X          can come to the word "small" in the first paragraph by  giving an
X          argument to the commands listed here.
X
X                  Two other  simple cursor commands that are useful to help
X          us move around in the text are M-N next-paragraph which moves the
X          cursor to the second paragraph, and M-P  previous-paragraph which
X          moves it back to the previous paragraph.  The cursor may  also be
X          moved rapidly from one end of  the  line  to the other.  Move the
X          cursor to the word "few" in the second line.  Press ^A beginning-
X          of-line.  Notice  the  cursor  moves  to the word "events" at the
X          beginning of the line.   Pressing ^E end-of-line moves the cursor
X          to the end of the line.
X
X                  Finally,  the  cursor  may be moved from any point in the
X          file to the end or beginning  of  the file.  Entering M-> end-of-
X          file moves the cursor to the end of the buffer, M-< beginning-of-
X          file to the first character of the file.
X
X                  On the IBM-PC, the ATARI  ST and many other machines, the
X          cursor  keys can also be used to move the cursor about.  Also, if
X          there is one available, moving the mouse will move the cursor.
X
X                  Practice  moving the cursor in the  text  until  you  are
X          comfortable with the commands we've explored in this chapter.
X
X
X
X
X                                                                          4
X
X
X
X
X
X
X          Basic Concepts                        MicroEMACS Reference Manual
X
X
X          1.6  Saving your text
X
X
X                  When you've  finished  practicing  cursor  movement, save
X          your file.  Your file currently resides in a BUFFER.   The buffer
X          is a temporary storage area for  your  text, and is lost when the
X          computer is  turned  off.    You can save the buffer to a file by
X          entering ^X-^S save-file.  Notice  that  EMACS  informs  you that
X          your file has no name and will not let you save it.
X
X                  To save your buffer to a file with a different  name than
X          it's current one (which is  empty), press ^X^W write-file.  EMACS
X          will  prompt  you  for the filename you wish to write.  Enter the
X          name fang.txt and press return.  On a micro, the drive light will
X          come  on, and EMACS will inform you it is writing the file.  When
X          it finishes, it will inform you of the  number  of  lines  it has
X          written to the disk.
X
X                  Congratulations!!  You've just  saved  your  first  EMACS
X          file!
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X          5
X
X
X
X
X
X
X          MicroEMACS Reference Manual                        Basic Concepts
X
X
X
X
X
X
X                                  Chapter 1 Summary
X
X
X                  In chapter 1, you  learned  how to enter text, how to use
X          wrap mode,  how  to  move  the cursor, and to save a buffer.  The
X          following is a table of the commands covered in this  chapter and
X          their corresponding key bindings:
X
X          Key Binding             Keystroke       Effect
X
X          abort-command           ^G              aborts current command
X
X          add-mode                ^XM             allows addition of EMACS
X                                                  mode such as WRAP
X
X          backward-character      ^B              moves cursor left one character
X
X          beginning-of-file       M-<             moves cursor to beginning of file
X
X          beginning-of-line       ^A              moves cursor to beginning of line
X
X          end-of-file             M->             moves cursor to end of file
X
X          end-of-line             ^E              moves cursor to end of line
X
X          forward-character       ^F              moves cursor right one character
X
X          next-line               ^N              moves cursor to next line
X
X          next-paragraph          M-N             moves cursor to next paragraph
X
X          next-word               M-F             moves cursor forward one word
X
X          previous-line           ^P              moves cursor backward by one line
X
X          previous-paragraph      M-P             moves cursor to previous paragraph
X
X          previous-word           M-B             moves cursor backward by one word
X
X          save-file               ^X-^S           saves current buffer to a file
X
X          write-file              ^X-^W           save current buffer under a new
X                                                  name
X
X
X
X
X
X
X
X
X
X                                                                          6
X
X
X
X
X
X
X          Basic Editing--Simple Insertions and Deletions         MicroEMACS
X                                                           Reference Manual
X
X
X
X
X
X
X
X
X                                      Chapter 2
X
X                   Basic Editing--Simple Insertions and Deletions
X
X
X          2.1  A Word About Windows, Buffers, Screens, and Modes
X
X
X                  In the first chapter, you  learned how to create and save
X          a file in EMACS. Let's do some more editing on  this  file.  Call
X          up emacs by typing in the following command.
X
X                  emacs fang.txt
X
X                  On icon oriented  systems,  double  click  on  the uEMACS
X          icon, usually a file dialog box of some sort will appear.  Choose
X          FANG.TXT from the appropriate folder.
X
X                  Shortly after you invoke EMACS, the text should appear on
X          the screen ready for you to  edit.    The text you are looking at
X          currently resides in a buffer.   A  buffer is a temporary area of
X          computer  memory  which  is the primary unit internal to EMACS --
X          this is the place where EMACS goes to work.  The mode line at the
X          bottom of the screen lists the buffer name, FANG.TXT and the name
X          of the file with which this buffer is associated, FANG.TXT
X
X                  The computer talks to you  through the use of its screen.
X          This screen usually has an area of 24 lines each of 80 characters
X          across.  You can  use  EMACS to subdivide the screen into several
X          separate  work  areas,  or windows, each of which can be 'looking
X          into'  different  files  or sections of text.  Using windows, you
X          can work on several related texts at one time, copying and moving
X          blocks of text between windows with ease.  To keep track  of what
X          you are editing, each window is identified by a mode line  on the
X          last line of the window which lists the name of the  buffer which
X          it  is  looking  into, the file from which the text was read, and
X          how the text is being edited.
X
X                  An  EMACS  mode  tells EMACS how to deal with user input.
X          As we have already seen, the mode 'WRAP' controls how EMACS deals
X          with long lines (lines with over 79 characters) while the user is
X          typing  them  in.   The 'VIEW' mode, allows you to  read  a  file
X          without modifying it.  Modes  are associated with buffers and not
X          with files; hence, a  mode  needs to be explicitly set or removed
X          every time you edit a file.  A new file read into a buffer with a
X          previously specified mode will be edited under this mode.  If you
X
X
X
X          7
X
X
X
X
X
X
X          MicroEMACS Reference Manual  Basic Editing--Simple Insertions and
X                                                                  Deletions
X
X
X          use specific modes frequently, EMACS  allows you to set the modes
X          which are used by all new buffers, called global modes.
X
X
X          2.2  Insertions
X
X
X                  Your previously-saved text should look like this:
X
X               Fang Rock lighthouse, center of a series  of mysterious
X               and terrifying events at  the  turn  of the century, is
X               built  on a rocky island a few  miles  of  the  Channel
X               coast.  So small is  the island that wherever you stand
X               its rocks are wet with sea spray.
X
X               The lighthouse tower is in the center of the island.  A
X               steep  flight  of  steps leads to the heavy door in its
X               base.  Winding stairs lead up to the crew room.
X
X                  Let's assume you want  to  add  a  sentence in the second
X          paragraph after the word "base."  Move the cursor until it  is on
X          the "W" of "Winding". Now type the following:
X
X               This gives entry to the lower floor where the big steam
X               generator throbs steadily away, providing power for the
X               electric lantern.
X
X                  If  the line fails to wrap and you end up with a '$' sign
X          in the right margin,  just  enter  M-Q fill-paragraph to reformat
X          the  paragraph.    This  new  command  attempts  to  fill  out  a
X          paragraph.  Long lines  are  divided  up,  and words are shuffled
X          around to make the paragraph look nicer.
X
X                  Notice  that  all  visible  EMACS  characters  are  self-
X          inserting -- all you had to do was type the characters  to insert
X          and the existing text made space  for  it.  With a few exceptions
X          discussed later, all non-printing characters (such as  control or
X          escape sequences) are commands.  To insert spaces, simply use the
X          space bar.  Now move to the first line of the  file  and  type ^O
X          open-line (Oh, not zero).  You've just learned how  to  insert  a
X          blank line in your text.
X
X
X          2.3  Deletions
X
X
X                  EMACS offers  a number of deletion options.  For example,
X          move the cursor until it's under the period  at  the  end  of the
X          insertion you just did.  Press the backspace key.  Notice the "n"
X          on "lantern"  disappeared.  The backspace implemented on EMACS is