home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / me34exe.zip / doc / me3.doc next >
Text File  |  1995-01-14  |  55KB  |  1,212 lines

  1. ========================================================================
  2. ==    ME3 Documentation     Craig Durland  8/88 10/91 1/93 5/93  ==
  3. ========================================================================
  4.  
  5.   ME3 is a small, portable, extensible [GNU] Emacs' like editor.  This
  6. document describes how individual commands work - it is light on general
  7. usage.  If you need to learn Emacs, look at the GNU, Goslings or
  8. Unipress Emacs manuals.
  9.  
  10.  
  11.              Copyright 1991 Craig Durland
  12.     Distributed under the terms of the GNU General Public License.
  13.   Distributed "as is", without warranties of any kind, but comments,
  14.            suggestions and bug reports are welcome.
  15.  
  16. ========================================================================
  17. ==        Soft keys and Function keys                           ==
  18. ========================================================================
  19.  
  20.   When describing characters or keys, the character itself is used if it
  21. is printable.  Unprintable characters are made printable using 3 or more
  22. printable characters.  For example, the letter "A" is printable but
  23. control-A is not and so the code "C-a" is used to describe it.  The
  24. table below shows the various codes needed to map the unprintable keys.
  25.  
  26. Prefix    Meaning
  27. ------    -------
  28.   C-    Control key.
  29.   F-    Function or soft key such as f1, Home, etc.
  30.   M-    Meta key.  See META in the GLOSSARY.
  31.   S-    Shift.  This only applies to function keys.
  32.  
  33.    This is a list of "extended" keys - those not covered by ASCII.  ME
  34. maps these keys to 3 or more ASCII codes.  Ignore the ME key column
  35. unless you are binding keys.  The keyboard column is the key on the
  36. keyboard you press to generate the ME key which (unless rebound) fires
  37. off the function listed in the Bound to column.
  38.  
  39. Keyboard      ME key    Bound to
  40. --------      -- ---    ----- --
  41.   F1        F-1
  42.   F2        F-2
  43.   F3        F-3
  44.   F4        F-4
  45.   F5        F-5
  46.   F6        F-6
  47.   F7        F-7
  48.   F8        F-8
  49.   F9        F-9
  50.   F10        F-0
  51.   F11        F-a
  52.   F12        F-b
  53.   F13        F-c
  54.   F14        F-d
  55.   F15        F-e
  56.   F16        F-f
  57.   home        F-A    (beginning-of-buffer)
  58.   end        F-B    (end-of-buffer)
  59.   up arrow    F-C    (previous-line)
  60.   down arrow    F-D    (next-line)
  61.   right arrow   F-E    (next-character)
  62.   left arrow    F-F    (previous-character)
  63.   insert    F-G
  64.   delete    F-H    (delete-character)
  65.   page up    F-I    (previous-page)
  66.   page down    F-J    (next-page)
  67.   clear line    F-K    (cut-line)
  68.   delete line    F-L
  69.   insert line    F-M
  70.   select    F-N    (set-mark)
  71.   roll up     F-O    (scroll-down)
  72.   roll down     F-P    (scroll-up)
  73.   DEL        C-?    (delete-character) (This is the DELete key)
  74.   ESC        C-[
  75.   shift tab    M-I
  76.  
  77.   ALT 0..9A..Z!    mapped to META 0..9A..Z!
  78.   Use the ALT key like the control key (ie hold it down while you press the
  79.     next key).
  80.  
  81. For the MS-DOS and OS/2 versions of ME, the number pad keys (on the 101
  82. extended keyboard) are distinguished from the grey keys (the ones
  83. between the QWERTY keys and the number pad):
  84.  
  85.   Keyboard        ME key    Bound to
  86.   --------        -- ---    ----- --
  87.   NumPad home        F-{      mark-and-home
  88.   NumPad end        F-}      mark-and-end
  89.   NumPad up arrow    F-^      previous-line
  90.   NumPad down arrow    F-.      next-line
  91.   NumPad right arrow    F->      next-character
  92.   NumPad left arrow    F-<      previous-character
  93.   NumPad insert        F-&      toggle-overstrike
  94.   NumPad delete        F-#      delete-character
  95.   NumPad page up    F-[      next-page
  96.   NumPad page down    F-]      previous-page
  97.   NumPad -        F--
  98.   NumPad +        F-+
  99.   NumPad Enter        F-$
  100.   NumPad /        F-/
  101.   NumPad *        F-*
  102.  
  103.  
  104. ========================================================================
  105. ==            GLOSSARY                      ==
  106. ========================================================================
  107. C-[  See META
  108. args
  109.   Parameters or arguments that will be requested by the command.  If
  110.    [] surround the arg, then it will only be requested in certain cases.
  111.  
  112. binding    See bound.
  113. bound
  114.   A key is attached or bound to a command or program.
  115.   If the key is pressed, whatever it is bound to is invoked.
  116.   Keys can be bound locally or globally.  If a key has a local  binding,
  117.     pressing  the key in the  buffer  it was bound in causes  action.  A
  118.     global  binding  covers all buffers.  Note that local  bindings take
  119.     precedence over global ones.
  120. buffer
  121.   A buffer is an internal workspace where changes are made to text.  If
  122.     a buffer is visible, it is shown through one or more windows.  It is
  123.     usually attached to a file (ie contains the contents of the file).
  124.     If the buffer was created by reading in a file, the buffer name is
  125.     created by removing the path from the file name (and leaving only
  126.     the name and extension).
  127.  
  128. clear
  129.   A operation where something is covered over by something else.  Also
  130.     reset.
  131.   For example:
  132.     If text is cleared, it is covered by blanks.
  133.     If a mark is cleared, it is reset to an initial state (pointing to
  134.       nothing).
  135.   See also:  cut, delete.
  136. command or cmd
  137.   A ME built in command such as (read-file).
  138.   These can be bound to a key to make executing them easier.
  139.   Documented under COMMANDS (in me3.doc, this file).  These are
  140.     different from functions in that they can be bound to keys or
  141.     executed by (ME-command).
  142. Command completion
  143.   ME will  attempt to complete a command if the space bar is pressed and
  144.     completion is on.  The only time you can use command  completion  is
  145.     when you are being queried in the  minibuffer.  For example, when ME
  146.     is requesting a buffer name for  (use-existing-buffer) and foobar is
  147.     a buffer,  typing  "foo" and hitting  space will fill in the rest of
  148.     the name.  ME also trys to fix typos.  If you had typed  "fooie" and
  149.     hit the space bar, you still get "foobar".  Sometimes,  you will hit
  150.     space and only part of the command  name will  appear.  This is ME's
  151.     way of  telling  you there is some  ambiguity  as to the full  name.
  152.     Type some more of the name and hit space  again or press ?  to get a
  153.     list of possible names.
  154.   See also: complete in me3mutt.doc.
  155. cut
  156.   A operation where something is saved and then removed.
  157.   For example:  If text is cut, it is saved in the cut buffer and then
  158.     deleted.  You can retrieve it later from the cut buffer.
  159.   See also:  cut buffer, delete, clear.
  160. Cut buffer
  161.   An invisible buffer that holds things created by deletion commands
  162.     such as (cut-region) and (copy-region).  Used to cut and paste, or
  163.     just cut, text.
  164.   If you want to move a block of text about:  1.  set the mark at one
  165.     end and then move the dot to the other end.  2.  cut the region.  3.
  166.     move the dot to the start of where you want the text to begin and 4.
  167.     yank the cut buffer.  Bingo.
  168.   Copy and cut append to the cut buffer if last command was also a cut
  169.     or copy, otherwise the cut buffer is cleared before the new text is
  170.     entered.
  171.   The cut buffer is also used by (filter).
  172.   Other Emacs' refer to this as the kill buffer.
  173.  
  174. delete
  175.   A operation where something is removed and NOT saved.
  176.   For example:  If text is deleted, it is gone and can't be recovered
  177.     (unless undo can get it back).
  178.   See also:  cut, clear.
  179. dot
  180.   The place between two  characters.  It is  immediately  to the left of
  181.     the cursor.  Also known as point.  One per window or buffer.
  182.  
  183. ESCAPE
  184.   See also META.
  185.   The escape key (usually marked ESC on keyboards) acts like the META key
  186.     for those keyboards that don't have a META key.
  187.  
  188. file
  189.    For MS-DOS, you can use forward slashes "/" as part of the path name.
  190. function or fcn
  191.   The commands that comprise the Mutt programming language.  Documented
  192.     in mutt2.doc and me3mutt.doc.  These differ from commands in that
  193.     they cannot be bound to keys and cannot be executed by (ME-command).
  194.  
  195. help
  196.    Help is pretty much limited to reading manuals or asking gurus.
  197.    Limited forms of online help are command completion (see above),
  198.      typing a ?  when being asked a question (see "If you are being
  199.      asked a question" below), command completion, and the (help)
  200.      command.  Typing M-x help will get you started with the help system.
  201.  
  202. keys
  203.   Keys are used to enter text and invoke commands.  The keys used to
  204.     invoke can be one or two keys where each key can have one or more
  205.     modifiers.
  206.     modifier meaning    notes
  207.        M-    META    See META and ESCAPE.  Cannot be prefixed.
  208.        C-    CONTROL    
  209.        S-    SHIFT    Only used with nonASCII keys
  210.        F-    FUNCTION    NonASCII keys
  211.   See also: prefix-key in me3mutt.doc
  212.  
  213. macro
  214.   A sequence of  keystrokes  that can be replayed on command.  Used when
  215.     you don't  want to spend  the time  writing a  program.  Created  by
  216.     going through the motions (which are actually done so you can verify
  217.     that  what  you  want  to  happen  is   actually   happening)   (see
  218.     (start-macro)  and (end-macro)).  When replayed by  (execute-macro),
  219.     the exact sequence you typed in is replayed.
  220.  
  221. (mark)
  222.   A user settable dot.
  223.   A mark is remembered for the life of the buffer and stays where you
  224.     set it until you or ME moves it.  (exchange-dot-and-mark) will get
  225.     you to the mark from anywhere in the buffer.
  226.   If the dot is at a mark and you do something  (like  insert text, yank
  227.     text, etc), it is done  between  the dot and mark, that is, the mark
  228.     is before the change and the dot after.
  229.   Advanced  note:  The marks are  associated  with a buffer NOT with the
  230.     windows  attached  to the buffer.  Thus all  windows  attached  to a
  231.     buffer have the same marks.
  232. ME
  233. ME3
  234.   The Mutt Editor.  An editor that is extensible using the Mutt
  235.     programming language.  ME3 is the follow on to ME2, the follow on to
  236.     ME.
  237. message line or
  238. minibuffer
  239.   The bottom line of the screen.  This is the place where all questions
  240.     are asked, error messages sent, etc.
  241. META key
  242.   This is a modifier key that works like the control key.  Your keyboard
  243.     may or may not have  one.  On IBM PCs, this is the ALT key.  To use,
  244.     hold  down the META key and  press  the key you want to  modify.  If
  245.     your  keyboard does not have a META key, use ESCAPE  instead - press
  246.     the ESCAPE key, let it up and then press the key you want to modify.
  247.   In the ME documents, the META key will be referred to by M-x where x is
  248.     the key being modified.
  249. (modeline)
  250.   Mode lines seprate windows and provide information about the buffer in
  251.     the window.
  252.   ** ME3 -- buffer_name 8:45am -- (mode) [Ovwrt] File:file_name ----------
  253.     The ** is present if the buffer has been modified.  It is %% if the
  254.       buffer is read only, "  " if we don't care about the status of the
  255.       buffer and "--" if the buffer has not been modified.
  256.     The time is present if (display-time) has been called.
  257.     (mode) provides information about the mode the buffer is in.  For
  258.       example, (C) for c mode.
  259.     The words in the brackets can be Ovwrt if the buffer is Overstriking
  260.       or McDef is a keyboard macro is being recorded.
  261.     file_name is present only if a file is associated with the buffer.
  262. Mutt
  263.   The built in programming language.  Refer to the Mutt documentation in
  264.     mutt2.doc and me3mutt.doc.
  265.  
  266. n nth
  267.   Argument prefix (set by (universal-argument)).  This means repeat the
  268.     key (or what its bound to) or command n times.  If
  269.     (universal-argument) is not used then n defaults to 1.
  270.  
  271. pgm    See program.
  272. point    See dot.
  273. program
  274.   A program created by (defun).
  275.   These are created by the user to make its editing easier.
  276.   See mutt2.doc and me3mutt.doc.
  277.  
  278. (rectangle)
  279.   The rectangler region between two marks.  One mark is at the upper
  280.     left corner of the region and the other mark is at the lower right
  281.     corner.  The width is measured in characters and the height in lines.
  282. (region)
  283.   The area between two marks (usually the dot and the mark).
  284. (register)
  285.   A storage area that can hold text, rectangles or postions.  See the
  286.     various register commands for more info.  Each register has a single
  287.     character name:  a character in the range "0" to "9" and "a" to "z".
  288.     The contents of a register doesn't change until something is stored
  289.     there (which overwrites the old contents).
  290.  
  291. syntax tables are used to determine word boundaries, etc.  All commands
  292.    work with words use these tables (eg (next-word).  Use
  293.    (modify-syntax-entry) to change what it means to be a word.
  294. sysvar or system variable
  295.    These are a collection of user changeable variables that effect the way
  296.      ME does certain things.
  297.    Documented in me3mutt.doc.
  298.  
  299. window
  300.   A portion of the screen.  A window provides a view of a buffer.  There
  301.     can be more than one window showing a buffer.  Windows are separated
  302.     from each by a mode line.
  303. word
  304.   A string of letters, digits, "$", "'" or "_".  By modifying the syntax
  305.     tables, you can change the definition of a word.
  306.   See syntax tables, (modify-syntax-entry).
  307. Word wrap
  308.   When you are typing at the end of a line and cross the fill column the
  309.     last  "word" is  wrapped  to the next  line.  If you have some  left
  310.     margin  you  wish  to  preserve,   bind  CR  to   newline-and-indent
  311.     (bind-to-key "newline-and-indent" "C-m").
  312.   Setting the system var  word-wrap  to 0 turns it off,  setting it to n
  313.     causes wrapping to occur at column n.
  314.  
  315. ========================================================================
  316. ==        If you are being asked a question              ==
  317. ========================================================================
  318. "Special" keys:
  319.     C-h or Backspace    Delete character left of the cursor.
  320.     C-g     Terminate the command.
  321.     C-j     Same as C-m.
  322.     C-l  Redraw the screen.  Handy if you messed it up with help and want
  323.      to see the original contents.
  324.     C-m or return (enter)    End the question and return your answer.
  325.     C-q  Quote the next character.  C-qC-j is the code for the end of a
  326.      line - if you search for "C-qC-jstart of line" you will find
  327.      "start of line" if it is the first thing on a line.
  328.     C-^  Quote next key (same as C-q)
  329.  
  330.     ?  Show choices (if available).  This shows the possible responses
  331.      for this command.  This is available whenever command
  332.      completion is.
  333.     Space Command completion (if available for this command).  You can
  334.           customize this key.  See complete-key in me3mutt.doc.
  335.  
  336.     C-f  Next character
  337.     C-b  Previous character
  338.     C-a  Beginning of line
  339.     C-e  End of line
  340.  
  341.     C-u  Delete everything and start over.
  342.     C-d  Delete character
  343.     C-k  Delete to end of line
  344.  
  345.     M-f  Next word
  346.     M-b  Previous word
  347.  
  348.     C-p  Previous history
  349.     C-n  Next history
  350.     C-r  Search back though history
  351.     M->  Youngest history entry
  352.     M-<  Oldest history entry
  353.      
  354.   If you answer the question by hitting <return or enter> and the line is
  355.     empty, you have entered the null line zone.  This can be interpreted as:
  356.     1.  An empty line.  It will then be ignored or complained about or
  357.       stop the command.
  358.     2.  A C-m.  (bind-to-key) does this.
  359.     3.  A request to use the default.  This is usually the current
  360.       thing being manipulated (where thing is buffer, file, etc).
  361.       eg (write-file) defaults to current file name and
  362.       (delete-buffer) defaults to current buffer name.
  363.  
  364. ========================================================================
  365. ==            NOTES                          ==
  366. ========================================================================
  367. In this document, you will see command names surrounded by parens (eg
  368.   (beginning-of-line)).  If the command is bound, you can execute the
  369.   command by pressing the keys it is bound to.  For example,
  370.   (beginning-of-line) is bound to C-a, so holding down the control key
  371.   and pressing A will move the cursor the the beginning of the line.  If
  372.   the command is not bound (or you don't remember or want to use the
  373.   binding), you can also execute the command by using (ME-command).
  374.  
  375. ========================================================================
  376. ==            Command Line Options                  ==
  377. ========================================================================
  378.  
  379. ME supports several command line options.  They are processed in the
  380. order they appear on the command line.  The list of options is
  381. extendible - see cmdline.mut.
  382.  
  383. Here are the default options:
  384.   "file"    Visit file using visit-file.
  385.  
  386.   "-all"    Process all the remaining command line options.
  387.         Normally, processing stops after the first file is read
  388.         (the "file" option) (actually, the option processing
  389.         stops just before the next file is visited).  Some times
  390.         you want to read a bunch of files all at once, use -all.
  391.         See also next-file.
  392.  
  393.   "+n file"    Visit file (using visit-file) and then goto line n.
  394.  
  395.   "-i file"    
  396.   "-insert file"
  397.         Insert file (using insert-file) in the current buffer at
  398.         the dot.
  399.  
  400.   "-l file"
  401.   "-load file"
  402.         Load a file of Mutt code (file.mco) using load.
  403.  
  404.   "-f program"
  405.   "-funcall program"
  406.         Run the Mutt named program (same as (ME-command program)).
  407.  
  408. Examples:
  409.   me3 foo -f show-buffer-stats
  410.     This will read in foo and display some stats in the minibuffer.
  411.  
  412.   me3 +5 mail
  413.     This will visit mail and put the cursor on line 5.
  414.  
  415.   me3 -l ganoi
  416.     Run the towers of hanoi first thing.
  417.  
  418.   me3 +5 mail -f set-the-mark -f end-of-buffer -f cut-region -i reply
  419.     This visits the file mail, removes all text after line 5 and inserts
  420.     the file reply there.
  421.  
  422. ========================================================================
  423. ==            COMMANDS                      ==
  424. ========================================================================
  425. COMMAND    name, default binding, args and comments
  426.   These all return a BOOLEAN (the ones written in Mutt might not).
  427. Note:  All of commands listed are actually written in Mutt.  Some are
  428.   built-in (to ME) and others must be loaded.  The ones that must be
  429.   loaded are marked with a "*".  In all cases, the Mutt file that they
  430.   are defined in is listed after the command.  If you are using the
  431.   standard distribution of ME, the commands that need to be loaded will
  432.   be when you run the command.
  433.  
  434. (abort)        C-g                    basic.mut
  435.   Back out of anything.
  436.   If remembering a macro, forget it.
  437.   If executing a program, stop it.
  438.   This only works when ME is waiting for a key press (ie it won't halt
  439.     programs in a infinite loop or runaway programs that aren't looking
  440.     at the keyboard).
  441. (apropos)    M-?    args: keyword            basic.mut
  442.   List all commands and programs that have a keyword in them.  For
  443.     example, if you apropos commands with "mark" in them you might get
  444.     something like:
  445.     PROGRAMS:
  446.     mark-and-end               F-B
  447.     mark-and-home              F-A
  448.     COMMANDS:
  449.     exchange-dot-and-mark      C-xC-x 
  450.     set-mark                   C-@ M-  F-N
  451.     On the left is the command name.  On the right are the key(s) bound
  452.       to the command.  So, in this case, (set-the-mark) is bound to
  453.       control-@, meta-space and softkey-N.
  454.   Command completion is on.
  455.   See also: (describe-bindings).
  456.  
  457. (beginning-of-buffer)    M-<                basic.mut
  458.   Move the dot to the first character of the buffer.
  459.   See also: (end-of-buffer).
  460. (beginning-of-line)    C-a                basic.mut
  461.   Move the dot to the first character of the line.
  462.   See also: (end-of-line).
  463. (bind-local-key)    Not Bound            basic.mut
  464.   Args: command name, keystroke(s)
  465.   Same as (bind-to-key) but the binding is in effect only in the buffer it
  466.     was bound in.
  467.   Note that local bindings take precedence over global ones.
  468.   See: (bind-to-key)
  469. (bind-to-key)        Not Bound            basic.mut
  470.   Args: command name, keystroke(s)
  471.   Attach a key to a command or program.  When ever the key is pressed,
  472.     the command or program will be executed (except when a question is
  473.     being asked).
  474.   Possible keys are single key strokes and combo keystrokes.
  475.     Combo keys are prefixed keys, softkeys or modified keys.
  476.   When asked for the key just press the key(s).  You might have to use
  477.     C-q to quote the keys, in that case it often easier to just type
  478.     "C-a" if you mean control a.
  479.   If programming, use the keycode.  Keycodes are ASCII (ie no control
  480.     characters and such) representations of a key.  For example, META-D
  481.     is represented by the 3 characters M-d, control-C by C-c and
  482.     function key 1 (aka soft key 1) by F-1.  Keycodes should be used
  483.     when programming to avoid screwing up things like printers (when you
  484.     print out the file).  eg (bind-to-key "foo" "F-1").
  485.   To unbind a key, bind it to "".  (bind-to-key "" "F-1") will remove
  486.     anything bound to F-1 and make F-1 self insert.
  487.   Command completion is on.
  488.   See also: (bind-local-key), (defun), keys (in the glossary above).
  489. (bug-report)        Not Bound            basic.mut
  490.   If you find a bug and would like report it or send comments about ME,
  491.     you can use this command.
  492.  
  493. (calculator)*        Not Bound            calc.mut
  494.   A simple programmers calculator for those times when you don't want to
  495.     use the one sitting next to the keyboard.  Supports arithmetic in
  496.     many different bases.  For more info, run calculator and press "?".
  497. (capitalize-word)    M-c                case.mut
  498.   Capitalize word after dot.
  499.   If dot is between words, searches forward to the start of the next word
  500.     and capitalizes that one.
  501.   If the dot is in the middle of a word, the letter after the dot is
  502.     capitalized.
  503.   See also: (modify-syntax-entry), (upcase-region), (downcase-region),
  504.     (capitalize-region).
  505. (capitalize-region)    Not Bound            case.mut
  506.   Capitalize all words in a region.
  507.   If dot is between words, searches forward to the start of the next word
  508.     and capitalizes that one.
  509.   If the dot is in the middle of a word, the letter after the dot is
  510.     capitalized.
  511.   See also: (modify-syntax-entry), (upcase-region), (downcase-region),
  512.     (capitalize-word).
  513. (center-cursor)        F-G (Insert key)        me3.mut
  514.   The same things as C-uC-l - puts the cursor in the center of the
  515.     window.
  516. (center-screen-around-cursor-horizontally)  Not bound    window.mut
  517. (clear-rectangle)    Not Bound            me3.mut
  518.   Set the rectangle to blanks.
  519.   See also:  (copy-rectangle), (cut-rectangle), (delete-rectangle).
  520. (compile)*        Not bound            compile.mut
  521.   Run make (or a command of your choice (such as cc)), collect output in
  522.     a buffer and while the compile is running, optionally visit the
  523.     files that have errors.
  524.   See documentation in package.doc under "External Processes".
  525.   Notes:
  526.     Only works on machines running unix and the compute server.
  527.     Modeled after compile in GNU Emacs.
  528.     To run the compute server, use "comserver $HOME/.ME2.socket".  Since
  529.       the compute server is quite verbose, you will want to run it in
  530.       its own window.  If that is not possible (or desirable), use this
  531.       command:
  532.     comserver $HOME/.ME2.socket >/dev/null 2>/dev/null &
  533.  
  534. (copy-region)        M-w                basic.mut
  535.   Copy a region to the cut buffer.  If the last command was a cut
  536.     command, append to the cut buffer.  The region is unaffected.
  537.   Returns TRUE if region copied, FALSE if no region.
  538.   See also: (cut-region), (yank).
  539. (copy-rectangle)    Not Bound            me3.mut
  540.   Copy a rectangle to the cut buffer.
  541.   See also:  (cut-rectangle), (delete-rectangle), (clear-rectangle),
  542.     (copy-region-to-rectangle).
  543. (copy-region-to-rectangle)    C-xr            register.mut
  544.   Copy a rectangle (marked by the dot and mark) to a register.  With an
  545.     argument, the rectangle is deleted.  The command querys you for the
  546.     register (a single character in the range 0-9 a-z).
  547.   See also: (insert-register), (copy-to-register), (copy-rectangle).
  548. (copy-to-register)        C-xx            register.mut
  549.   Copy the region to a register.  With an argument, the region is
  550.     deleted.  The command querys you for the register (a single
  551.     character in the range 0-9 a-z).
  552.   See also: (insert-register), (copy-region-to-rectangle).
  553. (cut-the-line)            F-5            me3.mut
  554.   Delete the entire line the cursor is on.
  555. (cut-line)        C-k or F-K (clear line)        basic.mut
  556.   Delete text from dot to the end of the line.
  557.     If an argument is given:
  558.     If n = 0: Cut from beginning of line to dot.
  559.     If n > 0: Cut forward over n newlines.
  560.     If n < 0: Cut backward over n newlines.
  561.   The deleted text is put into the cut buffer or appended to the cut
  562.     buffer if the last command was also a cut command.
  563.   Other Emacs' call this kill-line.
  564.   See also: (cut-word), (cut-previous-word), (cut-region),
  565.     (yank).
  566. (cut-previous-word)    M-C-h (M-backspace)        basic.mut
  567.   Delete the previous word.  Save them in the cut buffer.
  568.   See also: (modify-syntax-entry).  
  569. (cut-rectangle)    Not Bound                me3.mut
  570.   Copy a rectangle and delete a rectangle to the cut buffer.
  571.   In GNU Emacs, this is called kill-rectangle.
  572.   See also:  (copy-rectangle), (delete-rectangle), (clear-rectangle).
  573. (cut-region)        C-w                basic.mut
  574.   Delete a region and save it in the cut buffer.  If the last command was
  575.     a cut command, append to the cut buffer.
  576.   See also: (copy-region), (cut-line),
  577.     (yank).
  578.   Other Emacs' call this kill-region.
  579. (cut-word)            M-d or M-C-? (M-DEL)    basic.mut
  580.   Delete a word.  Save them in the cut buffer.
  581.   See also: (modify-syntax-entry).  
  582.  
  583. (dabbrev-expand)    M-/    Autoloaded        dabbrev.mut
  584.   Takes the word the cursor is on and looks around in the buffer for
  585.     another word that starts with the same characters.  When one is
  586.     found, it is used to replace the word at the cursor.  Pressing M-/
  587.     again looks for a different word.
  588. (delete-buffer)        C-xk                delbuf.mut
  589.   Remove a buffer.  It disappears into ness-ness land.  If the buffer
  590.     has been modified, ask before deleting.  If the buffer is on the
  591.     screen, replace it with the (next-buffer).  If it is the only
  592.     buffer, replace it with "*scratch*".  If n, remove the window it was
  593.     displayed in.
  594.   Defaults to the current buffer.
  595.   Buffer name completion is on.
  596.   See also: (delete-current-window).
  597. (delete-character)    C-d, C-? (DEL) or F-H (delete)    basic.mut
  598.   Delete the character after the dot (visually under the cursor).  If at
  599.     the end of the line, the next line is joined to the current line.  If
  600.     given an argument, deleted characters are put into the cut buffer.
  601. (delete-current-window)        C-x0            window.mut
  602.   Delete the current window.
  603. (delete-horizontal-space)    Not bound        wspace.mut
  604.   Remove all whitespace surrounding the cursor.
  605.   See also: delete-whitespace.
  606. (delete-other-windows)        C-x1            window.mut
  607.   Make the current window the only window on the screen.
  608.   See also: (split-window-vertically).
  609. (delete-previous-character)    C-h (backspace)        basic.mut
  610.   Delete the character before the dot (visually to the left of the
  611.     cursor).  If at the beginning of the line, the current line is
  612.     joined to the end of the previous line.  If given an argument,
  613.     deleted characters are put into the cut buffer.
  614. (delete-rectangle)    Not Bound            me3.mut
  615.   Delete the rectangle.
  616.   See also:  (copy-rectangle), (cut-rectangle), (clear-rectangle).
  617. (delete-whitespace)    F-1                wspace.mut
  618.   Remove all the whitespace to the right of (and including) the cursor.
  619.   See also:  delete-horizontal-space.
  620. (describe-bindings)    Not bound            basic.mut
  621.   List all commands and programs along with their key bindings in the
  622.     same format as (apropos).
  623.   See also: (apropos).
  624. (describe-key)        Not Bound            me3.mut
  625.   Tells you what a key is bound to.
  626. (display-time)        Not Bound            mltime.mut
  627.   Display the current time in the modeline.  The time is updated every
  628.     minute (ME is idle).  This command toggles - if the time is being
  629.     displayed, (display-time) turns it off.
  630.   Notes:
  631.     Time is only updated while ME is idle.  While running a program or
  632.       waiting for input (in the minibuffer), the time is not updated.
  633.     display-time returns TRUE if the time was turned on, FALSE if turned
  634.       off.
  635. (downcase-region)    C-xC-l                case.mut
  636.   Convert a region to lower case.
  637.   See also: (upcase-region), (downcase-word), (upcase-word).
  638. (downcase-word)    M-l                    case.mut
  639.   Convert word to lower case.
  640.   See (capitalize-word) for edge conditions.
  641.   See also:  (modify-syntax-entry), (upcase-word), (downcase-region),
  642.     (upcase-region).
  643.  
  644. (end-macro)        C-x)                basic.mut
  645.   Stop remembering keystrokes.  The keystrokes are stored in the macro
  646.     buffer ready to be replayed by (execute-macro).
  647.   See also: (execute-macro), (start-macro).
  648. (end-of-buffer)        M->                basic.mut
  649.   Move the dot to the bottom of the buffer.
  650.   See also: (beginning-of-buffer).
  651. (end-of-line)        C-e                basic.mut
  652.   Move the dot to the end of the line.
  653.   See also: (beginning-of-line).
  654. (exchange-dot-and-mark)    C-xC-x                basic.mut
  655.   Move the dot to the mark and set the mark to old dot value.  Visually,
  656.     move to where the mark was set.  Repeating this command will undo it.
  657.   See also: (set-the-mark).
  658. (execute-macro)        C-xe                basic.mut
  659.   Replay the keystrokes saved in the macro buffer.
  660.   See also: (start-macro), (end-macro).
  661. (exit)        C-c  C-xC-c    args: [yes or no]    basic.mut
  662.   Exit ME.  If there is a modified buffer (one that has changed since it
  663.     was last saved), you are asked about it.
  664.   If n, quit no matter what and without making any noise.
  665.  
  666. (filter)        Not bound            filter.mut
  667.   Take a region and feed it to a filter as standard input.
  668.   Take the output of the filter and use it to replace the region.
  669.   For example:  If the region is a list of words and sort is a program
  670.     that sorts text then (filter "sort") will replace the region with a
  671.     sorted copy.
  672.   If you don't want to remove anything, use universal argument (C-u) or
  673.     make a null region (set the mark at the dot).  eg C-u (filter "ls")
  674.     will insert a directory listing at the dot.
  675.   The region is saved in the cut buffer.
  676.   See OS-filter (in me3mutt.doc) for info on environment variables.
  677. (findit)*        Not bound            findit.mut
  678.   Search or search and replace across many files.
  679.   See documentation in package.doc under "findit".
  680.   See also: grep.
  681. (forward-re-search)    M-C-s                search.mut
  682.   Same as (forward-search) but using regular expressions.
  683.   See regexp.doc for regular expression syntax.
  684.   See also: (query-replace), (forward-search), (reverse-re-search).
  685.    in me3mutt.doc: case-fold-search, get-matched, looking-at
  686. (forward-search)    Not Bound            search.mut
  687.   Search for a string.
  688.   CR ends patterns, LF (^J) => end of line.
  689.   The pattern is saved across searches.
  690.   (forward-search) The dot is after the last character matched.
  691.   (reverse-search) The dot is before the last character matched, or put
  692.     another way, to the left of the first character of the search string.
  693.   Examples:
  694.     To search for "foobar", type: foobar<Enter>
  695.     To search for "foobar"<end of line>, type: foobar^Q^J<Enter>
  696.     To search for <start of line>"foobar", type: ^Q^Jfoobar<Enter>
  697.       Note that, in this case, the very first line will not match (this
  698.       is because the first line has no preceding line and therefore no
  699.       end of line marker before it).
  700.   See also:  (reverse-search), (forward-re-search), (isearch),
  701.     (query-replace), (re-query-replace), case-fold-search (in me3mutt.doc)
  702.     
  703. (get-sysvar)        Not Bound            sysvar.mut
  704.   Display the value of a ME3 system variable.
  705.   See me3mutt.doc for a list and what they do.
  706.   Command completion is on.
  707.   See also:  (set-sysvar), (sysvars).
  708. (Goto-line)        M-g                me3.mut
  709.   Move the dot to the beginning of the nth line in the current buffer.
  710.     First line of the buffer is 1.  If n is negative, got the nth line
  711.     from the end of the buffer.
  712.   Returns FALSE is try to move off either end of the buffer.  In that
  713.     case the dot is left at the buffer edge it tried to move across (at
  714.     the start of the line).
  715.   Notes:
  716.     Line 0 does not really exist so (goto-line 0) returns FALSE.  If you
  717.     ignore the error, (goto-line 0) is the same as (goto-line 1).
  718.   See also:  goto-line (in me3mutt.doc).
  719. (grep)*            Not bound            compile.mut
  720.   Run grep, collect output in a buffer and while the grep is running,
  721.     visit all the files grep finds matches in.
  722.   See documentation in package.doc under "compile".
  723.   Notes:
  724.     Only works on machines running unix and the compute server.
  725.     Modeled after grep in GNU Emacs.
  726.   See also: findit.
  727. (grow-window)        C-x^                window.mut
  728.   Enlarge the current window by a line.  To grow the window by n lines,
  729.     use C-u n C-x^.  If n is negative, the window will shrink.
  730.   See also: (shrink-window).
  731.  
  732. (hanoi)*        Not bound            ganoi.mut
  733.   A towers of hanoi solver that shows the disks moving around.
  734.   To load it:  M-x load <Enter> ganoi <Enter>
  735.   See also: (Queens).
  736. (help)            Not bound            help.mut
  737.   This is front end to the web hyper text document browser (see web.mut
  738.     in package.doc).  It pops up a menu so you can pick a topic to
  739.     browse.
  740.  
  741. (indent-rigidly)    C-xC-i                indent.mut
  742.    Shift a block left or right.
  743.    A block is all the lines of text between the dot and mark inclusive.
  744.    With no arg: asks for the amount to shift the region.  Positive
  745.      for right shift, negative for left shift.
  746.    With arg (ie C-u):  shifts the region by the difference between the dot
  747.      and the first nonblank character on that line.
  748.      eg use this to shift the top line of the region over to the cursor.
  749.    Removes white space from blank lines.
  750.    When doing a negative shift, text won't be shifted left of the left
  751.      margin.
  752.  
  753. (insert-file)        C-xi    args: file name        basic.mut
  754.   Insert a file into the buffer at the dot.  The file is unaffected.
  755.   Command completion is on.
  756.   The mark is left after the inserted text.
  757.   See also: (read-file), (visit-file), (write-file), file-to-buffer
  758.     (me3mutt.doc).
  759. (insert-file-name)    Not bound            me3.mut
  760.   Use command completion to get a file name and insert the name at the
  761.     dot.
  762. (insert-register)    C-xg                register.mut
  763.   Insert the contents of a register at the dot.  If the register
  764.     contains a rectangle, a rectangle is inserted.  The command querys
  765.     you for the register (a single character in the range 0-9 a-z).
  766.   For text, the dot is left after the inserted text and the mark is
  767.     before.  With an argument, the dot is left before and the mark after.
  768.   See also: (copy-to-register), (copy-region-to-rectangle).
  769. (isearch-forward)    C-s or C-\            isearch.mut
  770.   Search as you type - shows you where the string you have typed so far
  771.     would be found.
  772.   Keys:
  773.     C-h (Backspace):  Remove the last character from the search pattern.
  774.        Don't move.
  775.     C-s:  Search forward for existing pattern.  If haven't entered a
  776.        pattern, the old pattern is used.
  777.     C-\:  Same as C-s.
  778.     C-r:  Search reverse for pattern.
  779.     C-q:  Quote the next character into the search pattern.  Useful for
  780.        searching for control characters (like tab).
  781.     C-w:  Add the rest of the word to the search pattern.
  782.     C-g:  Exit search.
  783.     C-m (Enter): Drop to non incremental search if haven't done anything
  784.      yet.
  785.   Control characters and combo keys (eg cursor motion, C-x=, etc)
  786.     terminate the search.  The key is then executed.  For example,
  787.     searching for text and then pressing C-p will cause the cursor to
  788.     move to the line above the matched text.
  789.  
  790.   If you want to call isearch from a Mutt program, prime and start
  791.     searching, just pass in a search string.  eg (isearch TRUE "foobar")
  792.     will start a incremental search at the point and search for foobar.
  793.     Use FALSE to search backwards.
  794.  
  795.   See also:  (isearch-reverse), (forward-search).
  796. (isearch-reverse)    C-r                isearch.mut
  797.   See (isearch-forward) for info.
  798.  
  799. (list-buffers)        C-xC-b                bstats.mut
  800.   List all the buffers currently in ME along with some info about them.
  801.     With arg, run buffer-menu.
  802.   For example:
  803.     Flags  Size Buffer           File
  804.     -----  ---- ------           ----
  805.     .---     81 *Help*
  806.     -u--   2732 bstats.mut     /users/craig/tools/me3/mutt/bstats.mut
  807.     Mu--  37434 me3.doc         /users/craig/tools/me3/doc/me2.doc
  808.  
  809.    40527 bytes (943 lines) in 3 buffers.  
  810.  
  811.   Here is what the flags (MuhH) mean:
  812.     M : M if the buffer has been modified and we care.
  813.     u : u if undo is turned on.
  814.     H : if the buffer is "hard" hidden.
  815.     h : if the buffer is "soft" hidden.
  816.     If any of the flags is off, a "-" is used in place of the letter
  817.       (except for modified where a "." is used).
  818.   See also: (show-buffer-stats), buffer-menu (a package).
  819. (load)    Not bound    args: code-file-name        basic.mut
  820.   Load a Mutt executable code file compiled with the Mutt compiler (MC2).
  821.   Notes:
  822.     The extension (on the code file) MUST be ".mco" but you don't have
  823.       to type it in (ie I'll change it to ".mco" no matter what it is).
  824.     The environment variable ME3 is used as a search path for load.  See
  825.       load-code (in me3mutt.doc for how it is parsed (basically like
  826.       $PATH)).
  827.   Warnings:
  828.     If a code file is loaded that has the same name (ignoring path) as
  829.       an already loaded code file, it overwrites the old file.  All keys
  830.       bound to functions in the old file are removed.  See autoload.mut
  831.       for more about loading and late binding.
  832.   See also: load-code (in me3mutt.doc).
  833.  
  834. (mark-and-end)        F-B (End key)            me3.mut
  835.   Set the mark and move the dot to the end of the buffer.
  836. (mark-and-home)        F-A (Home key)            me3.mut
  837.   Set the mark and move the dot to the start of the buffer.
  838. (ME-command)    M-x    args: command or program name    basic.mut
  839.   Run a command or program.  ie one of the things listed in this
  840.     document.  When asked what to Execute:  use the name as listed here
  841.     (without the "()"'s).  eg Execute:  describe-bindings
  842.   Command completion is in effect.
  843.  
  844. (newline)        C-m                basic.mut
  845.   Insert a newline before the dot (visually before the cursor).
  846.   See also: (newline-and-indent), (open-line).
  847. (newline-and-indent)    C-j or M-C-o (oh, not zero)    basic.mut
  848.   Insert a newline before the dot and duplicate the indentation of the
  849.     previous line (the one the dot just left).
  850.   Notes:
  851.     If tab-stops is 0, tabs are used where possible.  Otherwise only
  852.       blanks are used.
  853.    If the cursor is in the middle of whitespace at the start of a line,
  854.      the indent will be the same as the cursor.  This makes
  855.      newline-and-indent at the start of a line work "right".
  856.    If the current line is blank but has whitespace on it, the whitespace
  857.      is removed.
  858.   See also: (newline), (open-line), tab-stops (me3mutt.doc).
  859. (next-buffer)        F-2                hidebuf.mut
  860.   Replace the current buffer with the next buffer in the buffer list,
  861.     skipping the hidden buffers.  The buffer list is in alphabetical
  862.     order.  The buffer list is circular, ie, the last buffer is followed
  863.     by the first buffer.
  864.   See also:  (list-buffers), (switch-to-buffer), (use-existing-buffer).
  865. (next-character)    C-f or F-E (right arrow)    basic.mut
  866.   Move right a character.
  867.   See also: (previous-character).
  868. (next-file)        C-xf                basic.mut
  869.   Read the next file on the command line.  By default, ME only reads the
  870.     first file on the command line.  This command will read the next
  871.     one.  Note that wildcards must be expanded by the shell (MS-DOS
  872.     users take note).
  873.   Use C-u to read in lots of files at once.
  874.   See also:
  875.     The section titled "Command Line Options".
  876. (next-line)        C-n or F-D (down arrow)    basic.mut
  877.   Move the dot vertically down the screen.  Trys to stay in the same
  878.     column.
  879.   Note:
  880.     Don't use this in a program unless you want column tracking (for
  881.       example binding an arrow key).  In most cases the column tracking
  882.       gets in the way and will confuse your program.  Use forward-line
  883.       instead.  (see me3mutt.doc).
  884.   See also: (forward-line), (previous-line).
  885. (next-page)        C-v or F-J (page down)        window.mut
  886.   Scroll forwards a page (window size -2).
  887.   See also: (previous-page).
  888. (next-window)        C-xo (oh, as in other)        window.mut
  889.   Move to the next window down the screen and make it the current window.
  890.   See also: (previous-window)
  891. (next-word)        M-f                basic.mut
  892.   Move forwards until dot is after the end of a word or end of buffer.
  893.   See also: glossary, (previous-word), (cut-previous-word),
  894.     (cut-word), (modify-syntax-entry).
  895. (not-modified)        Not bound            me3.mut
  896.   Reset the modified bit on the current buffer.
  897.  
  898. (open-line)        C-o (oh, not zero)        basic.mut
  899.   Insert a newline after the dot.  The dot does not move.
  900.   See also: (newline), (newline-and-indent).
  901.  
  902. (p-match)        F-6                pmatch.mut
  903.   Paren matcher.  Works on (){}.
  904.   Put the cursor at a paren, execute p-match.  The cursor is moved to
  905.     the matching paren, sits there for a while so you can see the
  906.     matching paren and then cursor is restored.  The mark is left at the
  907.     matching paren so you can (exchange-dot-and-mark) at your convenience.
  908. (point-to-register)    C-x/                register.mut
  909.   Mark the current buffer and position in a register.  You can return to
  910.     that point (from anywhere) with (register-to-point).
  911. (previous-character)    C-b or F-F (left arrow)        basic.mut
  912.   Move the dot backwards by a character.
  913.   See also: (next-character).
  914. (previous-line)        C-p or F-C (up arrow)        basic.mut
  915.   Move the dot vertically up the screen.  Tries to stay in the same
  916.     column.
  917.   Note:
  918.     Don't use this in a program unless you want column tracking (for
  919.       example binding an arrow key).  In most cases the column tracking
  920.       gets in the way and will confuse your program.  Use forward-line
  921.       instead.  (see me3mutt.doc).
  922.   See also: (forward-line), (next-line).
  923. (previous-page)        M-v or F-I (page up)        window.mut
  924.   Scroll backwards a page (window size -2).
  925.   See also: (next-page).
  926. (previous-window)    C-xp                window.mut
  927.   Move to the window immediately above the current window and make it the
  928.   current window.
  929.   See also: (next-window).
  930. (previous-word)        M-b                basic.mut
  931.   Move backwards until dot is at the beginning of a word or beginning of
  932.     buffer.
  933.   See also: (cut-previous-word), (cut-word), (next-word),
  934.     (modify-syntax-entry).
  935.  
  936. (Queens)*        Not Bound            queen.mut
  937.   A "how do you place N queens on a NxN chess board so they don't attack
  938.     each other?"  solver that shows the queens moving around.
  939.   To load it:  M-x load <Enter> queen <Enter>
  940.   See also: (hanoi).
  941.  
  942. (query-replace)    M-% or M-q                qr.mut
  943.   Interactively search and replace strings.
  944.   If the replacements are successful, the cursor is left where the
  945.     replace started and the mark is after the last replacement.
  946.   If terminated, the cursor is left where the abort occurred and the
  947.     mark is where the replace started.
  948.   n : No, don't replace.  Go on to next match.
  949.   <SPACE>, y : Yes, replace and go to next match.
  950.   ! : Replace all the rest without asking.
  951.   C-g :  Stop.  The command stops and the cursor is left where it is.
  952.     To get to the start of the query-replace, use
  953.     (exchange-dot-and-mark).
  954.   ? : Popup a window with some documentation in it.
  955.   C-l : Redraw the screen and put the cursor in a "reasonable" place.
  956.   A few others.  Use "?".
  957.  
  958.   If you hit a character not in the list, the query-replace stops.
  959.   Patterns are saved across searches.
  960.   If you want to call this from a Mutt program, the optional args are:
  961.     (query-replace search-pattern replace-pattern)
  962.     Note that the query-replace remains interactive.
  963.   See also:  (re-query-replace), search-replace (me3mutt.doc),
  964.     case-fold-search (in me3mutt.doc).
  965. (quote)            C-q or C-^ (control-^)        basic.mut
  966.   Insert the next character typed into the buffer.  This is how to get
  967.     control characters and the like into the buffer.
  968.   Notes:
  969.     If you quote ALT keys or softkeys it will be pretty boring.
  970.     C-q0 (zero) will ask for a decimal number that is converted into a
  971.       character.  For example, C-q065 will insert "A" into the buffer.
  972.  
  973. (re-query-replace)    M-C-q                qr.mut
  974.   Same as (query-replace) but using regular expressions.
  975.   See regexp.doc for regular expression syntax.
  976.   See also: (query-replace), case-fold-search (in me3mutt.doc)
  977. (read-file)    C-xC-r    args: file name, [yes or no]    basic.mut
  978.   Clear the current buffer (asking if the buffer has been modified) and read
  979.     in a file.
  980.   The file name defaults to the file name of the current buffer.
  981.   Command completion is on.
  982.   See also: (insert-file), (visit-file), (write-file) and read-file-hook
  983.     (in me3mutt.doc).
  984. (refresh-screen)    C-l                window.mut
  985.   Repaint the screen.  If n, then center the dot vertically in the window.
  986.   See also: (reposition-window).
  987. (register-to-point)    C-xj                register.mut
  988.   Jump to the buffer and point saved in a register by (point-to-register).
  989. (rename-buffer)    Not bound                me3.mut
  990.   Change the name of the file that is attached to the current buffer.
  991.   After you do this, saving the buffer will cause it to write to the new
  992.     file name.
  993.   If you want to detach the buffer from the file system, use "" as the
  994.     new file name.
  995. (reposition-window)    M-!                window.mut
  996.   Move the current window so that the line the dot is on is n lines
  997.     from the top of the window.  The default is to move the line the dot
  998.     is on to the top of the window.
  999.   If n <  0, move the dot so that it is n lines from the bottom.
  1000.   If n == 0, the dot is centered vertically centered in the window.
  1001.   See also: (refresh-screen).
  1002. (reverse-re-search)    Not Bound            search.mut
  1003.   Same as (reverse-search) but using regular expressions.
  1004.   See regexp.doc for regular expression syntax.
  1005.   See also: (reverse-search), (forward-re-search).
  1006. (reverse-search)    Not Bound            search.mut
  1007.   See (forward-search) for info.
  1008.  
  1009. (save-buffer)        C-xC-s                basic.mut
  1010.   Write the current buffer to the file associated with it.  Does not
  1011.     do anything if the buffer has not been modified.  If you want to
  1012.     force a write, use (write-file).
  1013.   See also:  (write-file).
  1014. (scroll-down)        C-xC-n or F-O (oh) (roll up)    window.mut
  1015.   Move the current window down by a line.  Visually, the dot moves up the
  1016.     screen.
  1017. (scroll-left)        C-x<                window.mut
  1018.   Scroll the current window left - ie move the text in the window to
  1019.     the left.  With an arg, moves that many columns, otherwise, moves 3
  1020.     less than the screen width.
  1021.   See also:  (scroll-right).
  1022. (scroll-other-window)    M-C-v                window.mut
  1023.   Page the "next" window (the one you would get to with next-window).
  1024. (scroll-right)        C-x>                window.mut
  1025.   Scroll the current window right - ie move the text in the window to
  1026.     the right.  With an arg, moves that many columns, otherwise, moves 3
  1027.     less than the screen width.
  1028.   See also:  (scroll-left).
  1029. (scroll-up)        C-xC-p or F-P (roll down)    window.mut
  1030.   Move the current window up by a line.  Visually, the dot moves down the
  1031.     screen.
  1032. (set-the-mark)  C-@ or M-SPACE or F-N (select), sometimes C-space basic.mut
  1033.   Set the mark at the dot.  Visually, under the cursor.
  1034.   See also: (exchange-dot-and-mark).
  1035. (set-sysvar)        Not Bound            sysvar.mut
  1036.   Set a ME system variable.
  1037.   See me3mutt.doc for a list and what they do.
  1038.   Command completion is on.
  1039.   set-sysvar knows "off" and "hard" as 0, "on" as 1 and reconizes
  1040.     numbers.
  1041.   See also:  (get-sysvar), (sysvars).
  1042. (shell-command)        C-x!    args: op sys command    basic.mut
  1043.   Call the operating system to perform a command or run a program and
  1044.     then return to editing.
  1045.   MS-DOS example:  To copy a file: (shell-command "copy foo bar")
  1046.     To get a directory listing: (shell-command "ls").
  1047.   See also:  (filter), (spawn-shell), enter-ME-hook, leave-ME-hook and
  1048.     OS-command (in me3mutt.doc).
  1049. (shell-region)        Not bound            me3.mut
  1050.   Use the region as input to (shell-command).
  1051.   For example:
  1052.     foo.c has a comment in it that shows how to compile:
  1053.     /* cc -o foo foo.c -lX11 */
  1054.     By setting dot and mark around the text and using shell-region, you
  1055.     can compile foo.
  1056.   Notes:
  1057.     Don't use a very big region - shell-command gets very upset at more
  1058.       then 256 characters.
  1059.   See also:  (shell-command).
  1060. (show-buffer-stats)    C-x=                bstats.mut
  1061.   Display some info about the current buffer.
  1062. (shrink-window)    C-xC-z                    window.mut
  1063.   Shrink the current window by a line.  With an arg, shrink by that many
  1064.     lines.
  1065.   See also: (grow-window), window-length (me3mutt.doc).
  1066. (spawn-shell)        C-z                basic.mut
  1067.   Jump to the operating system shell for a while.  ME is still loaded
  1068.     and will sit in the background until you exit the shell (via "exit"
  1069.     in MS-DOS).
  1070.   In UNIX and MS-DOS, you can specify your shell with the SHELL
  1071.     environment variable (eg set SHELL=MUSH.EXE).
  1072.   On UNIX systems that support job control, C-uC-z will suspend ME.
  1073.     This is (usually) much faster than forking a new shell (use the fg
  1074.     command (or equivalent) to return to ME).  A major drawback of this
  1075.     is trying to use it from a shell that does not support job control
  1076.     (such as sh) or from a program (such as mail) that fired off ME via
  1077.     the C system() command (it uses sh).  In these cases the shell hangs
  1078.     and it is difficult to recover.
  1079.   See also:  (shell-command), (filter), enter-ME-hook and leave-ME-hook
  1080.     (in me3mutt.doc).
  1081. (spell-buffer)*            Unix only        spell.mut
  1082.   Check the spelling of every word in the current buffer using the Unix
  1083.     spell program.  For each incorrect word, you are asked for the
  1084.     correct spelling and then put into a query-replace to fix some or
  1085.     all occurrences.  If you do not want to change a word, just press
  1086.     Return - the query replace will be skipped.  If you hit Return too
  1087.     many times, press "-" and you will be asked about the previous
  1088.     incorrect word.  Case is important.
  1089. (spell-region)*            Unix only        spell.mut
  1090.   Check the spelling of words in a region.
  1091. (spell-string)*            Unix only        spell.mut
  1092.   Check the spelling of one or more words you type in.  No query replace
  1093.     is done.
  1094. (spell-word)*        M-$    Unix only        spell.mut
  1095.   Check the spelling of the words the cursor is on.
  1096. (split-window-vertically)  C-x2                window.mut
  1097.   Make 2 windows out of the current window.  A window with less than 3
  1098.     lines cannot be split.
  1099.   See also: (delete-other-windows).
  1100. (start-macro)        C-x(                basic.mut
  1101.   Start remembering keystrokes until (end-macro).
  1102.   (abort) will terminate and back out of the macro.
  1103.   See also: (end-macro), (execute-macro).
  1104. (switch-to-buffer)    C-xb    args: buffer name    basic.mut
  1105.   Replace the current window with another buffer.
  1106.   Buffer name completion is on.
  1107.   See also: (list-buffers), (next-buffer), (use-existing-buffer).
  1108. (sysvars)        Not Bound            sysvar.mut
  1109.   Pop a menu of the system variables and optionally set one.  To set
  1110.     one, move the cursor the variable you want to change (with regular
  1111.     ME keys or vi keys) and press return.  (set-sysvar) is then run on
  1112.     that variable.
  1113.   See also:  (get-sysvar), (set-sysvar).
  1114.  
  1115. (tab)            C-i or the tab key        basic.mut
  1116.   Insert tab(s).
  1117.   Move to the next tab stop.  With argument, move n tabs.
  1118.   To set the tab stops, see tab-stops in me3mutt.doc.
  1119. (toggle-read-only)    C-xC-q                basic.mut
  1120.   Toggle the read only status of the current buffer.  When a buffer is
  1121.     read only, no changes are allowed (the exception is that the buffer
  1122.     can be deleted).
  1123.   See also:  buffer-read-only.
  1124. (transpose-chars)    C-t                twiddle.mut
  1125.   Transpose the two characters on either side of the dot (cursor) and
  1126.     move the dot forward.  If at the end of the line, transpose the two
  1127.     characters left of the dot.
  1128.   This works the same as GNU Emacs transpose-chars.
  1129.   See also:  twiddle-about-dot and twiddle-left-of-dot.
  1130. (turn-on-undo)        Not Bound            undo.mut
  1131.   Turn on undo for a buffer.  This has usually already been done.
  1132.   See also: (undo)
  1133. (twiddle-about-dot)    Not Bound            twiddle.mut
  1134.   Transpose the two characters on either side of the dot (cursor).
  1135.   See also:  transpose-chars and twiddle-left-of-dot.
  1136. (twiddle-left-of-dot)    Not Bound            twiddle.mut
  1137.   Transpose the two characters left of the dot (cursor).
  1138.   See also:  transpose-chars and twiddle-about-dot.
  1139.  
  1140. (undo)            C-xu or C-_            undo.mut
  1141.   Undo the last change to the buffer.  May not be turned on for some
  1142.     buffers.
  1143.   Undo won't undo the following things:
  1144.     cursor movement, buffer clears, file reads, buffer (or file) name
  1145.     changes.
  1146.   See also:  (turn-on-undo), Undo.article.
  1147. (universal-argument)    C-u                basic.mut
  1148.   Get a numeric count for the next command.  The next command or program
  1149.     is performed count times.  If the command is a self-insert, count
  1150.     copies of the character are inserted.
  1151.   Count starts at 4 (except as noted below).  If the first key pressed
  1152.     after C-u is "-", count becomes negative.  Pressing C-u multiplies
  1153.     count by 4.  If a non digit is pressed, whatever is bound to that
  1154.     key is performed count times.  Otherwise, count becomes the next
  1155.     digits pressed.
  1156.   For example, C-uC-f will move forward 4 characters, C-uC-uC-f 16
  1157.     characters, C-u123 123 characters.  C-u5@ will insert "@@@@@".
  1158.   If (universal-argument) is given an argument, the count starts there.
  1159.     For example, in some Emacses, META digit starts the count at digit.
  1160.     See arg-prefix in me3mutt.doc for how to implement this.
  1161.   (universal-argument) ignores running programs and will read from the
  1162.     keyboard.  Use arg-prefix if you wish pass an argument to something.
  1163.   See also: arg-prefix (in me3mutt.doc).
  1164. (upcase-region)    C-xC-u                    case.mut
  1165.   Convert a region to upper case.
  1166.   See also: (downcase-region), (downcase-word), (upcase-word).
  1167. (upcase-word)        M-u                case.mut
  1168.   Convert word to upper case.
  1169.   See (capitalize-word) for edge conditions.
  1170.   See also:  (modify-syntax-entry), (downcase-word), (downcase-region),
  1171.     (upcase-region).
  1172. (use-existing-buffer)    C-xC-o (oh)            me3.mut
  1173.   Replace the current window with a buffer that already exists.
  1174.   Buffer name completion is on.
  1175.   See also: (list-buffers), (switch-to-buffer).
  1176.  
  1177. (version)        Not bound            basic.mut
  1178.   Show the version of ME.
  1179. (visit-file)    C-xC-f or C-xC-v  args: file name    basic.mut
  1180.   Pull a file into a buffer for editing.  The current window is used to
  1181.     hold new buffer.  If arg-prefix, the window is split (if it is the
  1182.     only one) or another window is used to hold the new buffer.  If the
  1183.     file has been already loaded, switch to it.  Otherwise, read in the
  1184.     file.  A buffer name is created from the file name by stripping off
  1185.     the directory info and keeping the name and extension.  The dot is
  1186.     set to the beginning of the buffer and the marks are cleared (if
  1187.     this is a new buffer).
  1188.   If the buffer already exists but the filenames are different (eg "foo"
  1189.     and "../foo" both generate the buffer name "foo"), a unique buffer
  1190.     name is constructed by appending "<2>", "<3>", etc, using the lowest
  1191.     number that makes a name not already in use.
  1192.   Command completion is on.
  1193.   See also:  (insert-file), (read-file), (write-file) and read-file-hook
  1194.     (in me3mutt.doc).
  1195.  
  1196. (write-file)        C-xC-w    args: file-name        basic.mut
  1197.   Write the current buffer to a file.  If the file exists, it is
  1198.     overwritten.  If the file does not already exist, it is created.
  1199.   file-name defaults to the file name of the current buffer.
  1200.   Note that the buffer name and file name do NOT change.  Some Emacses
  1201.     change the file name to file-name.  If you like this behavior, try:
  1202.     (defun write-named-file
  1203.     {(rename-buffer (ask "Write named file: "))(write-file "")})
  1204.   Command completion is on.
  1205.   See also: (insert-file), (read-file), (save-buffer), (visit-file).
  1206.  
  1207. (yank)            C-y                basic.mut
  1208.   Insert the contents of the cutbuffer before the dot (visually before the
  1209.     cursor).  Does not affect the cut buffer.
  1210.   The dot is left after the yanked text.  The mark does not move.
  1211.   See also: (copy-region), (cut-line), (cut-region).
  1212.