557 lines
15 KiB
Groff
557 lines
15 KiB
Groff
.so mnx.mac
|
|
.TH ELLE 9
|
|
.CD "elle \(en ELLE Looks Like Emacs"
|
|
.SX "elle \fIfile\fR [\fIfile2\fR]"
|
|
.FL "\fR(none)"
|
|
.EY "elle file.c" "Start the editor"
|
|
.PP
|
|
\fIELLE\fR (ELLE Looks Like Emacs) is an Emacs clone for
|
|
.MX .
|
|
ELLE is not full Emacs but it has about 80 commands and is quite fast.
|
|
.SP 0.5
|
|
.SS "Key bindings"
|
|
.SP 0.5
|
|
.PP
|
|
\fIMined\fR only has a small number of commands. All of them are either of
|
|
the form CTRL-x or are on the numeric keypad. Emacs, in contrast, has so
|
|
many commands, that not only are all the CTRL-x commands used up, but so
|
|
are all the ESC x (escape followed by x; escape is not a shift character,
|
|
like CTRL). Even this is not enough, so CTRL-X is used as a prefix for
|
|
additional commands. Thus CTRL-X CTRL-L is a command, and so is CTRL-X K.
|
|
Note that what is conventionally written as CTRL-X K really means CTRL-X k.
|
|
In some contexts it is traditional to write CTRL-X as ^X.
|
|
Please note that they mean the same thing.
|
|
.PP
|
|
As a result, many Emacs commands need three or four key strokes to
|
|
execute. Some people think 3-4 key strokes is too many.
|
|
For this reason, Emacs and ELLE allow users to assign their own key bindings.
|
|
In ELLE this is done with \*(OQuser profiles.\*(CQ A user profile is a file listing
|
|
which function is invoked by which key stroke. The user profile is then
|
|
compiled by a program called ellec into binary form. When ELLE starts up
|
|
it checks to see if a file .ellepro.b1 exists in $HOME. If it does, this
|
|
file is read in and overrides the default bindings.
|
|
.PP
|
|
A user profile that simulates the \fImined\fR commands fairly
|
|
well is provided.
|
|
Its installation is described later. If you have never used Emacs,
|
|
it is suggested that you use the \fImined\fR profile.
|
|
If you normally use Emacs, then
|
|
do not install the \fImined\fR profile. You can also make your own using
|
|
\fIellec\fR.
|
|
There is no Mock Lisp.
|
|
.PP
|
|
ELLE has a character-oriented view of the world, not a line oriented
|
|
view, like \fIed\fR.
|
|
It does not have magic characters for searching.
|
|
However, you can use line feed in search patterns.
|
|
For example, to find a line consisting of the three characters
|
|
\*(OQfoo\*(CQ all by themselves on a line, using the mined
|
|
bindings (see below), use the pattern: CTRL-\\ CTRL-J f o o CTRL-\\ CTRL-J.
|
|
The CTRL-\ means to interpret the next character literally, in this case it
|
|
is CTRL-J, which is line feed. You can also search for patterns involving
|
|
multiple lines. For example, to find a line ending in an \*(OQx\*(CQ followed by a
|
|
line beginning with a \*(OQy\*(CQ, use as pattern: x CTRL-\ CTRL-J y.
|
|
.SS "Mined Key Bindings"
|
|
.PP
|
|
These are the key bindings if the binary user profile, \fI.ellepro.b1\fR,
|
|
is installed in $HOME. The ESCAPE key followed by a number followed by a
|
|
command causes that command to be executed \*(OQnumber\*(CQ times. This applies
|
|
both to control characters and insertable characters. CTRL-X refers to a
|
|
\*(OQcontrol character.\*(CQ ESC x refers to an escape character
|
|
followed by x.
|
|
In other words, ^X is a synonym for CTRL-X.
|
|
^X Y refers to CTRL-X followed by y. To abort the current command and go
|
|
back to the main loop of the editor, type CTRL-G, rather than CTRL-\\.
|
|
.PP
|
|
Only a few commands are of the form CTRL-X Y. All of these are also
|
|
bound to CTRL-X CTRL-Y, so you can hold down CTRL and then hit X Y, or
|
|
release control after the X, as you prefer.
|
|
.PP
|
|
The key bindings that are not listed should not be used.
|
|
Some of them actually do things.
|
|
For example, the ANSI escape codes ESC [ x are bound
|
|
to ^X Y for a variety of y.
|
|
.PP
|
|
Some commands work on regions.
|
|
A region is defined as the text between the most recently set mark
|
|
and the cursor.
|
|
.SP 0.5
|
|
.SS "Mined Commands"
|
|
.SP 0.5
|
|
.PP
|
|
If the \fImined\fR profile,
|
|
.I .ellepro.b1
|
|
is installed in your home directory, the following commands will work.
|
|
.sp
|
|
.in +1.75i
|
|
.ta +1.25i
|
|
.ti -1.5i
|
|
\fBCURSOR MOTION\fR
|
|
.ti -1.25i
|
|
arrows Move the cursor in the indicated direction
|
|
.ti -1.25i
|
|
CTRL-A Move cursor to start of current line
|
|
.ti -1.25i
|
|
CTRL-Z Move cursor to end of current line
|
|
.ti -1.25i
|
|
CTRL-F Move cursor forward word
|
|
.ti -1.25i
|
|
CTRL-B Move cursor backward to start of previous word
|
|
.sp
|
|
.ti -1.5i
|
|
\fBSCREEN MOTION\fR
|
|
.ti -1.25i
|
|
Home key Move to first character of the file
|
|
.ti -1.25i
|
|
End key Move to last character of the file
|
|
.ti -1.25i
|
|
PgUp key Scroll window up 22 lines (closer to start of the file)
|
|
.ti -1.25i
|
|
PgDn key Scroll window down 22 lines (closer to end of the file)
|
|
.ti -1.25i
|
|
CTRL-U Scroll window up 1 line
|
|
.ti -1.25i
|
|
CTRL-D Scroll window down 1 line
|
|
.ti -1.25i
|
|
ESC , Move to top of screen
|
|
.ti -1.25i
|
|
CTRL-_ Move to bottom of screen
|
|
.sp
|
|
.ti -1.5i
|
|
\fBMODIFYING TEXT\fR
|
|
.ti -1.25i
|
|
DEL key Delete the character under the cursor
|
|
.ti -1.25i
|
|
Backsp Delete the character to left of the cursor
|
|
.ti -1.25i
|
|
CTRL-N Delete the next word
|
|
.ti -1.25i
|
|
CTRL-P Delete the previous word
|
|
.ti -1.25i
|
|
CTRL-T Delete tail of line (all characters from cursor to end of line)
|
|
.ti -1.25i
|
|
CTRL-O Open up the line (insert line feed and back up)
|
|
.ti -1.25i
|
|
ESC G Get and insert a file at the cursor position (CTRL-G in mined)
|
|
.sp
|
|
.ti -1.5i
|
|
\fBREGIONS\fR
|
|
.ti -1.25i
|
|
CTRL-^ Set mark at current position for use with CTRL-C and CTRL-K
|
|
.ti -1.25i
|
|
CTRL-C Copy the text between the mark and the cursor into the buffer
|
|
.ti -1.25i
|
|
CTRL-K Delete text between mark and cursor; also copy it to the buffer
|
|
.ti -1.25i
|
|
CTRL-Y Yank contents of the buffer out and insert it at the cursor
|
|
.sp
|
|
.ti -1.5i
|
|
\fBMISCELLANEOUS\fR
|
|
.ti -1.25i
|
|
numeric + Search forward (prompts for expression)
|
|
.ti -1.25i
|
|
numeric \(mi Search backward (prompts for expression)
|
|
.ti -1.25i
|
|
CTRL-] ESC n CTRL-[ goes to line n (slightly different syntax than mined)
|
|
.ti -1.25i
|
|
CTRL-R Global replace pattern with string (from cursor to end)
|
|
.ti -1.25i
|
|
CTRL-L Replace pattern with string within the current line only
|
|
.ti -1.25i
|
|
CTRL-W Write the edited file back to the disk
|
|
.ti -1.25i
|
|
CTRL-S Fork off a shell (use CTRL-D to get back to the editor)
|
|
.ti -1.25i
|
|
CTRL-G Abort whatever the editor was doing and wait for command (CTRL-\)
|
|
.ti -1.25i
|
|
CTRL-E Redraw screen with cursor line positioned in the middle
|
|
.ti -1.25i
|
|
CTRL-V Visit (edit) a new file
|
|
.ti -1.25i
|
|
CTRL-Q Write buffer to a file
|
|
.ti -1.25i
|
|
ESC X Exit the editor
|
|
.SP 0.5
|
|
.in -1.75i
|
|
.SS "Non-Mined Commands"
|
|
.LP
|
|
.SP 0.5
|
|
.in +1.75i
|
|
.ta +1.25i
|
|
.ti -1.5i
|
|
\fBCURSOR MOTION\fR
|
|
.ti -1.25i
|
|
ESC P Forward paragraph (a paragraph is a line beginning with a dot)
|
|
.ti -1.25i
|
|
ESC ] Backward paragraph
|
|
.ti -1.25i
|
|
ESC . Indent this line as much as the previous one
|
|
.sp
|
|
.ti -1.5i
|
|
\fBMODIFYING TEXT\fR
|
|
.ti -1.25i
|
|
CTRL-\\ Insert the next character (used for inserting control characters)
|
|
.ti -1.25i
|
|
ESC T Transpose characters
|
|
.ti -1.25i
|
|
ESC W Transpose words
|
|
.ti -1.25i
|
|
ESC = Delete white space (horizontal space)
|
|
.ti -1.25i
|
|
ESC | Delete blank lines (vertical space)
|
|
.sp
|
|
.ti -1.5i
|
|
\fBREGIONS\fR
|
|
.ti -1.25i
|
|
ESC M Mark current paragraph
|
|
.ti -1.25i
|
|
ESC ^ Exchange cursor and mark
|
|
.ti -1.25i
|
|
ESC Y Yank back the next-to-the-last kill (CTRL-Y yanks the last one)
|
|
.ti -1.25i
|
|
ESC A Append next kill to kill buffer
|
|
.sp
|
|
.ti -1.5i
|
|
\fBKEYBOARD MACROS\fR
|
|
.ti -1.25i
|
|
ESC / Start Keyboard Macro
|
|
.ti -1.25i
|
|
ESC \\ End Keyboard Macro
|
|
.ti -1.25i
|
|
ESC * View Keyboard Macro (the PrtSc key on the numeric pad is also a *)
|
|
.ti -1.25i
|
|
ESC E Execute Keyboard Macro
|
|
.sp
|
|
.ti -1.5i
|
|
\fBWINDOW MANAGEMENT\fR
|
|
.ti -1.25i
|
|
^X 1 Enter one window mode
|
|
.ti -1.25i
|
|
^X 2 Enter two window mode
|
|
.ti -1.25i
|
|
^X L Make the current window larger
|
|
.ti -1.25i
|
|
^X P Make the window more petit/petite (Yes, Virginia, they are English)
|
|
.ti -1.25i
|
|
^X N Next window
|
|
.ti -1.25i
|
|
^X W New window
|
|
.sp
|
|
.ti -1.5i
|
|
\fBBUFFER MANAGEMENT\fR
|
|
.ti -1.25i
|
|
numeric 5 Display the list of current files and buffers
|
|
.ti -1.25i
|
|
ESC B Select a buffer
|
|
.ti -1.25i
|
|
ESC S Select an existing buffer
|
|
.ti -1.25i
|
|
ESC N Mark a buffer as NOT modified (even if it really is)
|
|
.sp
|
|
.ti -1.5i
|
|
\fBUPPER AND LOW CASE MANIPULATION\fR
|
|
.ti -1.25i
|
|
ESC I Set first character of word to upper case
|
|
.ti -1.25i
|
|
ESC C Capitalize current word
|
|
.ti -1.25i
|
|
ESC O Make current word ordinary (i.e., lower case)
|
|
.ti -1.25i
|
|
ESC U Set entire region between mark and cursor to upper case
|
|
.ti -1.25i
|
|
ESC L Set entire region between mark and cursor to lower case
|
|
.sp
|
|
.ti -1.5i
|
|
\fBMISCELLANEOUS\fR
|
|
.ti -1.25i
|
|
ESC F Find file and read it into its own buffer
|
|
.ti -1.25i
|
|
ESC Z Incremental search
|
|
.ti -1.25i
|
|
ESC Q Like CTRL-R, but queries at each occurrence (type ? for options)
|
|
.ti -1.25i
|
|
ESC R Reset the user profile from a file
|
|
.ti -1.25i
|
|
ESC H Help (ELLE prompts for the 1 or 2 character command to describe)
|
|
.ti -1.25i
|
|
ESC ; Insert a comment in a C program (generates /* */ for you)
|
|
.ti -1.25i
|
|
^X X Exit the editor (same as ESC X and CTRL-X CTRL-X)
|
|
.in -1.75i
|
|
.fi
|
|
.sp
|
|
The major differences between ELLE
|
|
with the \fImined\fR profile and \fImined\fR itself are:
|
|
.sp
|
|
.nf
|
|
.in +0.25i
|
|
1. The definition of a \*(OQword\*(CQ is different for forward and backward word
|
|
2. The mark is set with CTRL-^ instead of CTRL-@
|
|
3. Use CTRL-G to abort a command instead of CTRL-\\
|
|
4. Use CTRL-\ to literally insert the next character, instead of ALT
|
|
5. CTRL-E adjusts the window to put the cursor in the middle of it
|
|
6. To get and insert a file, use ESC G instead of CTRL-G
|
|
7. To go to line n, type ESC n CTRL-[ instead of CTRL-[ n
|
|
8. You exit with CTRL-X CTRL-X and then answer the question with \*(OQy\*(CQ.
|
|
9. There are many new commands, windows, larger files, etc.
|
|
.fi
|
|
.in -0.25i
|
|
.sp
|
|
.SS "Emacs Key Bindings"
|
|
.PP
|
|
If you do not have the \fImined\fR profile installed, you get the standard
|
|
Emacs key bindings.
|
|
These are listed below.
|
|
Commands not listed are not implemented.
|
|
.sp
|
|
.in +1.75i
|
|
.ta +1.25i
|
|
.ti -1.5i
|
|
\fBCURSOR MOVEMENT\fR
|
|
.ti -1.25i
|
|
CTRL-F Forward one character.
|
|
.ti -1.25i
|
|
CTRL-B Backward one character.
|
|
.ti -1.25i
|
|
CTRL-H Same as CTRL-B: move backward one character.
|
|
.ti -1.25i
|
|
ESC F Forward one word.
|
|
.ti -1.25i
|
|
ESC B Backward one word.
|
|
.ti -1.25i
|
|
CTRL-A Beginning of current line.
|
|
.ti -1.25i
|
|
CTRL-E End of current line.
|
|
.ti -1.25i
|
|
CTRL-N Next line (goes to the next line).
|
|
.ti -1.25i
|
|
CTRL-P Previous line (goes to the previous line).
|
|
.ti -1.25i
|
|
CTRL-V Beginning of next screenful.
|
|
.ti -1.25i
|
|
ESC V Beginning of previous screenful.
|
|
.ti -1.25i
|
|
ESC ]~ Forward Paragraph.
|
|
.ti -1.25i
|
|
ESC [~ Backward Paragraph.
|
|
.ti -1.25i
|
|
ESC < Beginning of whole buffer.
|
|
.ti -1.25i
|
|
ESC > End of whole buffer.
|
|
.sp
|
|
.ti -1.5i
|
|
\fBDELETING\fR
|
|
.ti -1.25i
|
|
CTRL-D Deletes forward one character (the one the cursor is under).
|
|
.ti -1.25i
|
|
DELETE Deletes backward one character (the one to left of cursor).
|
|
.ti -1.25i
|
|
ESC D Kills forward one word.
|
|
.ti -1.25i
|
|
ESC DEL Kills backward one word.
|
|
.ti -1.25i
|
|
CTRL-K Kills the rest of the line (to the right of the cursor).
|
|
.ti -1.25i
|
|
ESC \\ Deletes spaces around the cursor.
|
|
.ti -1.25i
|
|
^X CTRL-O Deletes blank lines around the cursor.
|
|
.sp
|
|
.ti -1.5i
|
|
\fBCASE CHANGE\fR
|
|
.ti -1.25i
|
|
ESC C Capitalizes word : first letter becomes uppercase; rest lower
|
|
.ti -1.25i
|
|
ESC L Makes the whole next word lowercase.
|
|
.ti -1.25i
|
|
ESC U Makes the whole next word uppercase.
|
|
.ti -1.25i
|
|
^X CTRL-L Makes whole region lowercase.
|
|
.ti -1.25i
|
|
^X CTRL-U Makes whole region uppercase.
|
|
.sp
|
|
.ti -1.5i
|
|
\fBSEARCHING\fR (If no string is given, previous string is used)
|
|
.ti -1.25i
|
|
CTRL-S Incremental Search forward; prompts \*(OQI-search:\*(CQ
|
|
.ti -1.25i
|
|
CTRL-R Reverse Incremental Search; prompts \*(OQR-search:\*(CQ
|
|
.HS
|
|
During an incremental search, the following characters have special effects:
|
|
.HS
|
|
.in +1.2i
|
|
.ta +1.0i +0.2i
|
|
.ti -1.2i
|
|
\*(OQnormal\*(CQ - Begin searching immediately.
|
|
.ti -1.2i
|
|
^G - Cancel I-search, return to start.
|
|
.ti -1.2i
|
|
DEL - Erase last char, return to last match.
|
|
.ti -1.2i
|
|
^S, ^R - Repeat search (or change direction).
|
|
.ti -1.2i
|
|
ESC or CR - Exit I-search at current point.
|
|
.sp
|
|
.in -1.2i
|
|
.ta +1.25i
|
|
.ti -1.25i
|
|
ESC % Query Replace. Interactive replace. Type \*(OQ?\*(CQ to see options.
|
|
.ti -1.25i
|
|
^X % Replace String. Like Query Replace, but not interactive
|
|
.sp
|
|
.ti -1.5i
|
|
\fBMARKING AREAS\fR
|
|
.ti -1.25i
|
|
CTRL-^ Set mark
|
|
.ti -1.25i
|
|
^X CTRL-X Exchange cursor and mark.
|
|
.ti -1.25i
|
|
ESC H Mark Paragraph. Sets mark and cursor to surround a para.
|
|
.ti -1.25i
|
|
CTRL-W Wipe-out -- kills a \*(OQregion\*(CQ:
|
|
.ti -1.25i
|
|
ESC W Copy region. Like CTRL-W then CTRL-Y but modifies buffer
|
|
.ti -1.25i
|
|
CTRL-Y Yanks-back (un-kills) whatever you have most recently killed.
|
|
.ti -1.25i
|
|
ESC Y Yanks-back (un-kills) the next most recently killed text.
|
|
.ti -1.25i
|
|
ESC CTRL-W Append Next Kill. Accumulates stuff from several kills
|
|
.sp
|
|
.ti -1.5i
|
|
\fBFILLING TEXT\fR
|
|
.ti -1.25i
|
|
ESC Q Fill the paragraph to the size of the Fill Column.
|
|
.ti -1.25i
|
|
ESC G Fill the region.
|
|
.ti -1.25i
|
|
^X F Set Fill Column. ESC Q will use this line size.
|
|
.ti -1.25i
|
|
^X . Set Fill Prefix. Asks for prefix string
|
|
.ti -1.25i
|
|
^X T Toggles Auto Fill Mode.
|
|
.sp
|
|
.ti -1.5i
|
|
\fBWINDOWS\fR
|
|
.ti -1.25i
|
|
^X 2 Make two windows (split screen).
|
|
.ti -1.25i
|
|
^X 1 Make one window (delete window) (make one screen).
|
|
.ti -1.25i
|
|
^X O Go to Other window.
|
|
.ti -1.25i
|
|
^X ^ Grow window: makes current window bigger.
|
|
.sp
|
|
.ti -1.5i
|
|
\fBBUFFERS\fR
|
|
.ti -1.25i
|
|
^X CTRL-F Find a file and make a buffer for it.
|
|
.ti -1.25i
|
|
^X B Select Buffer: goes to specified buffer or makes new one
|
|
.ti -1.25i
|
|
^X CTRL-B Show the names of the buffers used in this editing session.
|
|
.ti -1.25i
|
|
^X K Kill Buffer.
|
|
.ti -1.25i
|
|
ESC tilde Say buffer is not modified.
|
|
.ti -1.25i
|
|
^X CTRL-M Toggle EOL mode (per-buffer flag).
|
|
.sp
|
|
.ti -1.5i
|
|
\fBKEYBOARD MACRO\fR
|
|
.ti -1.25i
|
|
^X ( Start collecting a keyboard macro.
|
|
.ti -1.25i
|
|
^X ) Stop collecting.
|
|
.ti -1.25i
|
|
^X E Execute the collected macro.
|
|
.ti -1.25i
|
|
^X * Display the collected macro.
|
|
.sp
|
|
.ti -1.5i
|
|
\fBFILES\fR
|
|
.ti -1.25i
|
|
^X CTRL-I Insert a file where cursor is.
|
|
.ti -1.25i
|
|
^X CTRL-R Read a new file into current buffer.
|
|
.ti -1.25i
|
|
^X CTRL-V Same as ^X ^R above (reads a file).
|
|
.ti -1.25i
|
|
^X CTRL-W Write buffer out to new file name.
|
|
.ti -1.25i
|
|
^X CTRL-S Save file: write out buffer to its file name.
|
|
.ti -1.25i
|
|
^X CTRL-E Write region out to new file name.
|
|
.sp
|
|
.ti -1.5i
|
|
\fBMISCELLANEOUS\fR
|
|
.ti -1.25i
|
|
^X CTRL-Z Exit from ELLE.
|
|
.ti -1.25i
|
|
^X ! Escape to shell (CTRL-D to return)
|
|
.ti -1.25i
|
|
CTRL-O Open up line
|
|
.ti -1.25i
|
|
LINEFEED Same as typing RETURN and TAB.
|
|
.ti -1.25i
|
|
CTRL-T Transposes characters.
|
|
.ti -1.25i
|
|
ESC T Transposes words.
|
|
.ti -1.25i
|
|
CTRL-U Makes the next command happen four times.
|
|
.ti -1.25i
|
|
CTRL-U number Makes the next command happen \*(OQnumber\*(CQ times.
|
|
.ti -1.25i
|
|
ESC number Same as CTRL-U number.
|
|
.ti -1.25i
|
|
CTRL-L Refreshes screen.
|
|
.ti -1.25i
|
|
CTRL-U CTRL-L Refresh only the line cursor is on.
|
|
.ti -1.25i
|
|
CTRL-U n CTRL-L Change window so the cursor is on line n
|
|
.ti -1.25i
|
|
CTRL-Q Quote: insert the next character no matter what it is.
|
|
.ti -1.25i
|
|
CTRL-G Quit: use to avoid answering a question.
|
|
.ti -1.25i
|
|
ESC ; Inserts comment (for writing C programs).
|
|
.ti -1.25i
|
|
ESC I Inserts indentation equal to previous line.
|
|
.ti -1.25i
|
|
ESC M Move to end of this line's indentation.
|
|
.ti -1.25i
|
|
CTRL-_ Describe a command (if the command database is online)
|
|
.sp
|
|
.ti -1.5i
|
|
\fBUNUSED CONTROLS\fR
|
|
.ti -1.25i
|
|
CTRL-C Not used.
|
|
.ti -1.25i
|
|
CTRL-Z Not used.
|
|
.ti -1.25i
|
|
CTRL-] Not used.
|
|
.fi
|
|
.in -1.75i
|
|
.sp
|
|
.SP 0.5
|
|
.SS "ELLE profile"
|
|
.PP
|
|
It is possible to create your own user profile.
|
|
The mechanism is different from Emacs, since ELLE does not have Mock Lisp.
|
|
Proceed as follows.
|
|
.LI
|
|
.IT
|
|
Modify \fI.ellepro.e\fR to suit your taste.
|
|
.IT
|
|
Install \fI.ellepro.e\fR in your home directory.
|
|
.IT
|
|
Type:
|
|
.HS
|
|
.Cx "ellec \(enProfile"
|
|
.HS
|
|
.IT
|
|
Check to see if \fI.ellepro.b1\fR has been created.
|
|
If it has, you are ready to go.
|
|
.LX
|
|
.SS "Author"
|
|
.PP
|
|
ELLE was written by Ken Harrenstien of SRI (klh@sri.com).
|