ELLE.9
资源名称:os_source.zip [点击查看]
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:15k
源码类别:
操作系统开发
开发平台:
C/C++
- .CD "elle (en ELLE Looks Like Emacs"
- .SX "elle fIfilefR [fIfile2fR]"
- .FL "fR(none)"
- .EY "elle file.c" "Start the editor"
- .PP
- fIELLEfR (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
- fIMinedfR 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 fIminedfR commands fairly
- well is provided.
- Its installation is described later. If you have never used Emacs,
- it is suggested that you use the fIminedfR profile.
- If you normally use Emacs, then
- do not install the fIminedfR profile. You can also make your own using
- fIellecfR.
- There is no Mock Lisp.
- .PP
- ELLE has a character-oriented view of the world, not a line oriented
- view, like fIedfR.
- 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.b1fR,
- 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 fIminedfR 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 MOTIONfR
- .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 MOTIONfR
- .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 TEXTfR
- .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
- fBREGIONSfR
- .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
- fBMISCELLANEOUSfR
- .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 MOTIONfR
- .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 TEXTfR
- .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
- fBREGIONSfR
- .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 MACROSfR
- .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 MANAGEMENTfR
- .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 MANAGEMENTfR
- .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 MANIPULATIONfR
- .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
- fBMISCELLANEOUSfR
- .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 fIminedfR profile and fIminedfR 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 fIminedfR 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 MOVEMENTfR
- .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
- fBDELETINGfR
- .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 CHANGEfR
- .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
- fBSEARCHINGfR (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 AREASfR
- .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 TEXTfR
- .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
- fBWINDOWSfR
- .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
- fBBUFFERSfR
- .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 MACROfR
- .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
- fBFILESfR
- .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
- fBMISCELLANEOUSfR
- .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 CONTROLSfR
- .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.efR to suit your taste.
- .IT
- Install fI.ellepro.efR in your home directory.
- .IT
- Type:
- .HS
- .Cx "ellec (enProfile"
- .HS
- .IT
- Check to see if fI.ellepro.b1fR 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).