home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / mutt / me.doc < prev    next >
Text File  |  1988-10-24  |  35KB  |  742 lines

  1. ========================================================================
  2. ==        ME Documentation          Craig Durland  8/88 ==
  3. ========================================================================
  4.  
  5.   ME is a small, portable, extendable Emacs like editor.  This document
  6. describes how individual commands work - it is light on general usage.
  7. If you need to learn Emacs, look at the GNU, Goslings or Unipress Emacs
  8. manuals.
  9.  
  10. DOC FILE        What it covers
  11. --------        ------------------------------------------
  12. CMDS.DOC        Keys and what they are bound to.
  13. ME.DOC (this file)    ME built in commands.
  14. MEMUTT.DOC        The ME extensions to Mutt and ME system variables.
  15. MUTT.DOC        The Mutt programming language and Mutt compiler.
  16. ERRATA.DOC        Errata, machine specifics and philosophy.
  17. REGEXP.DOC        Regular expressions.
  18.  
  19. ========================================================================
  20. ==        What ME does NOT have that Emacs does                       ==
  21. ========================================================================
  22. * Undo
  23. * File name completion
  24. * Command history (mini buffer editing)
  25. * Multiple key macros, named macros, macros bound to keys
  26. * Recursive editing
  27. * Local syntax tables
  28. a few others
  29.  
  30. ========================================================================
  31. ==        Soft keys and Function keys                           ==
  32. ========================================================================
  33.  
  34.   When describing characters or keys, the character itself is used if it
  35. is printable.  Unprintable characters are made printable using 3 or more
  36. printable characters.  For example, the letter "A" is printable but
  37. control-A is not and so the code "C-A" is used to describe it.  The
  38. table below shows the various codes needed to map the unprintable keys.
  39.  
  40. Prefix    Meaning
  41.   C-    Control key.
  42.   F-    Function or soft key such as f1, Home, etc.
  43.   M-    Meta key.  See META in the GLOSSARY.
  44.   S-    Shift.  This only applies to function keys.
  45.  
  46.    This is a list of  "extended"  keys - those not covered by ASCII.  ME
  47. maps  these keys to 3 or more  ASCII  codes.  Ignore  the ME key  column
  48. unless  you are  binding  keys.  The  keyboard  column is the key on the
  49. keyboard you press to generate the ME key which (unless  rebound)  fires
  50. off the function listed in the Bound to column.
  51.  
  52. keyboard      ME key    Bound to
  53.    F1        F-1
  54.    F2        F-2
  55.    F3        F-3
  56.    F4        F-4
  57.    F5        F-5
  58.    F6        F-6
  59.    F7        F-7
  60.    F8        F-8
  61.    F9        F-9
  62.    F10        F-0
  63.   home        F-A    (beginning-of-buffer)
  64.   end        F-B    (end-of-buffer)
  65.   up arrow    F-C    (previous-line)
  66.   down arrow    F-D    (next-line)
  67.   right arrow   F-E    (next-character)
  68.   left arrow    F-F    (previous-character)
  69.   insert    F-G
  70.   delete    F-H    (delete-character)
  71.   page up    F-I    (previous-page)
  72.   page down    F-J    (next-page)
  73.   clear line    F-K    (kill-line)
  74.   delete line    F-L
  75.   insert line    F-M
  76.   select    F-N    (set-mark)
  77.   roll up     F-O    (scroll-down)
  78.   roll down     F-P    (scroll-up)
  79.   DEL        ^?    (delete-character)
  80.   ESC        ^[
  81.   shift tab    M-I
  82.  
  83.   ALT 0..9A..Z!    mapped to META 0..9A..Z!
  84.   Use the ALT key like the control key (ie hold it down while you press the
  85.     next key).
  86.  
  87. ========================================================================
  88. ========================================================================
  89.  
  90. Anytime you are being queried on the message line the softkeys return
  91. their internal value.  So if you want to bind F1, you can press F1
  92. when bind-to-key asks for a key.
  93.  
  94. Case of letters:
  95.   Meta keys and Control X commands: next letter is ALWAYS uppercase.
  96.   Softkeys are case sensitive.
  97.  
  98. ========================================================================
  99. ==            GLOSSARY                      ==
  100. ========================================================================
  101. ^[  See META
  102. args
  103.   Parameters or arguments that will be requested by the command.  If
  104.    [] surround the arg, then it will only be requested in certain cases.
  105. binding    See bound.
  106. bound
  107.   A key is attached or bound to a command or program.
  108.   If the key is pressed, whatever it is bound to is invoked.
  109.   Keys can be bound locally or globally.  If a key has a local  binding,
  110.     pressing  the key in the  buffer  it was bound in causes  action.  A
  111.     global  binding  covers all buffers.  Note that local  bindings take
  112.     precedence over global ones.
  113. buffer
  114.   A buffer is the  internal  workspace.  If a buffer is  visible,  it is
  115.     shown through one or more windows.  It is usually attached to a file
  116.     (ie  contains  the contents of the file).  If the buffer was created
  117.     by reading in a file, the  buffer  name is created by  removing  the
  118.     path from the file name (and leaving only the name and extension).
  119. command or cmd
  120.   A ME built in command such as (search-forward).
  121.   These can be bound to a key to make executing them easier.
  122.   Documented  under  COMMANDS  (in  ME.DOC).  These are  different  from
  123.     functions  in  that  they  can be  bound  to  keys  or  executed  by
  124.     (ME-command).
  125. Command  completion
  126.   ME will  attempt to complete a command if the space bar is pressed and
  127.     completion is on.  The only time you can use command  completion  is
  128.     when you are being queried in the  minibuffer.  For example, when ME
  129.     is requesting a buffer name for  (use-existing-buffer) and foobar is
  130.     a buffer,  typing  "foo" and hitting  space will fill in the rest of
  131.     the name.  ME also trys to fix typos.  If you had typed  "fooie" and
  132.     hit the space bar, you still get "foobar".  Sometimes,  you will hit
  133.     space and only part of the command  name will  appear.  This is ME's
  134.     way of  telling  you there is some  ambiguity  as to the full  name.
  135.     Type some more of the name and hit space  again or press ?  to get a
  136.     list of possible names.
  137.   See also: complete in MEMUTT.DOC.
  138. dot
  139.   The place between two  characters.  It is  immediately  to the left of
  140.     the cursor.  Also known as point.  One per window or buffer.
  141. ESCAPE  See META
  142.   The escape key (usally marked ESC on keyboards) acts like the META key
  143.     for those keyboards that don't have a META key.
  144. file
  145.    For MS-DOS, you can use forward slashes "/" as part of the path name.
  146. function or fcn
  147.   The commands that comprise the Mutt programming  language.  Documented
  148.     in MUTT.DOC and MEMUTT.DOC.  These differ from commands in that they
  149.     cannot be bound to keys and cannot be executed by (ME-command).
  150. help
  151.    Help is pretty much limited to reading manuals or asking gurus.
  152.    Limited  forms of online help are  command  completion  (see  above),
  153.      typing a ?  when  being  asked a  question  (see "If you are  being
  154.      asked a question" below) and (describe-bindings).
  155. keys
  156.   Keys are used to enter text and invoke commands.  The keys used to
  157.     invoke can be one or two keys where each key can have one or more
  158.     modifiers.
  159.     modifier meaning    notes
  160.        M-    META    See META and ESCAPE.  Cannot be prefixed.
  161.        C-    CONTROL    
  162.        S-    SHIFT    Only used with nonASCII keys
  163.        F-    FUNCTION    NonASCII keys
  164.   See also: prefix-key in MEMUTT.DOC
  165. Kill buffer
  166.   An invisible buffer that holds things created by deletion commands
  167.     such as (kill-region) and (copy-region).  Used to cut and paste, or
  168.     just cut, text.
  169.   If you want to move a block of text about: 1. set the mark at one end
  170.     and then move the dot to the other end.  2. kill the region. 3. move
  171.     the dot to the start of where you want the text to begin and 4. yank
  172.     the kill buffer.  Bingo.
  173.   Copy and kill append to the kill buffer if last command was also a
  174.     kill or copy, otherwise the kill buffer is cleared before the new text
  175.     is entered.
  176.   The killbuffer is also used by (filter-region).
  177. macro
  178.   A sequence of  keystrokes  that can be replayed on command.  Used when
  179.     you don't  want to spend  the time  writing a  program.  Created  by
  180.     going through the motions (which are actually done so you can verify
  181.     that  what  you  want  to  happen  is   actually   happening)   (see
  182.     (start-macro)  and (end-macro)).  When replayed by  (execute-macro),
  183.     the exact sequence you typed in is reentered.
  184. mark
  185.   A user settable dot.  Ten per buffer.
  186.   Unless stated otherwise, "the mark" refers to mark 0.
  187.   A mark is  remembered  for the life of the buffer and stays  where you
  188.     set it until  you or ME moves it.  (exchange-dot-and-mark)  will get
  189.     you to the mark from anywhere in the buffer.
  190.   If the dot is at a mark and you do something  (like  insert text, yank
  191.     text, etc), it is done  between  the dot and mark, that is, the mark
  192.     is before the change and the dot after.
  193.   Advanced  note:  The marks are  associated  with a buffer NOT with the
  194.     windows  attached  to the buffer.  Thus all  windows  attached  to a
  195.     buffer have the same marks.
  196. ME
  197.   The Mutt Editor.  An editor that is extendable using the Mutt
  198.     programming langauge.
  199. message line or
  200. minibuffer
  201.   The bottom line of the screen.  This is the place where all  questions
  202.     are asked, error messages sent, etc.
  203. META key
  204.   This is a modifier key that works like the control key.  Your keyboard
  205.     may or may not have  one.  On IBM PCs, this is the ALT key.  To use,
  206.     hold  down the META key and  press  the key you want to  modify.  If
  207.     your  keyboard does not have a META key, use ESCAPE  instead - press
  208.     the ESCAPE key, let it up and then press the key you want to modify.
  209.   In the ME documents, the META key will be refered to by M-x where x is
  210.     the key being modified.
  211. Mutt
  212.   The built in programming language.  Refer to the Mutt documentation in
  213.     MUTT.DOC and MEMUTT.DOC.
  214. n nth
  215.   Argument prefix (set by  (universal-argument)).  This means repeat the
  216.     key   (or   what   its   bound   to)   or   command   n   times.  If
  217.     (universal-argument) is not used then n defaults to 1.
  218. pgm    See program.
  219. point    See dot.
  220. program
  221.   A program created by (defun).
  222.   These are created by the user to make its editing easier.
  223.   See MUTT.DOC and MEMUTT.DOC.
  224. region
  225.   The area between dot and mark.
  226. syntax tables are used to determine word boundaries, etc.  All commands
  227.    work with words use these tables (eg (next-word) and
  228.    (re-search-forward)).  Use (modify-syntax-entry) to change what it means
  229.    to be a word.
  230. sysvar or system variable
  231.    These are a collection of user changable variables that effect the way
  232.      ME does certain things.
  233.    Documented in MEMUTT.DOC.
  234. window
  235.   A portion of the screen.  A window provides a view of a buffer.  There
  236.     can be more than one window showing a buffer.  Windows are separated
  237.     from each by a mode line.  Mode lines look like:
  238.     -* ME -- buffer_name -- file_name -------------------------------
  239.     The  * is  present  only  if  the  buffer  has  been  modified.  The
  240.     file_name is present only if a file is associated with the buffer.
  241. word
  242.   A string of letters, digits, "$", "'" or "_".  By modifying the syntax
  243.     tables, you can change the definition of a word.
  244.   See syntax tables, (modify-syntax-entry).
  245. Word wrap
  246.   When you are typing at the end of a line and cross the fill column the
  247.     last  "word" is  wrapped  to the next  line.  If you have some  left
  248.     margin  you  wish  to  preserve,   bind  CR  to   newline-and-indent
  249.     (bind-to-key "newline-and-indent" "C-M").
  250.   Setting the system var  word-wrap  to 0 turns it off,  setting it to n
  251.     causes wrapping to occur at column n.
  252.  
  253. ========================================================================
  254. ==        If you are being asked a question              ==
  255. ========================================================================
  256. Key bindings are not in effect.  This means if a normal key has been bound
  257.   to something wrong by accident, you can unbind it without undo grief.
  258. "Special" keys:
  259.     ^H, DEL or backspace    Delete character left of the cursor.
  260.     ^G    Abort out of the question.  Also causes the command to be aborted.
  261.     ^I    Tab.
  262.     ^J    Returns the code for newline.  Handy for searches. Same as ^Q^M.
  263.     ^L  Redraw the screen.  Handy if you messed it up with help and want
  264.     to see the original contents.
  265.     ^M or return (enter)    End the question and return your answer.
  266.     ^Q    Quote the next character.
  267.     ^U    Erase everything and start over.
  268.      ?  Show help (if available).  This shows the possible responses
  269.     for this command.  This is available whenever command
  270.     completion is.
  271.     Control keys in general return the code for the key.
  272.     Function keys return the function key itself, NOT what its bound to.
  273.  
  274.   If you answer the question by hitting <return or enter> and the line is
  275.     empty, you have entered the null line zone.  This can be interpreted as:
  276.     1.  An empty line.  It will then be ignored or complained about or
  277.       stop the command.
  278.     2.  A ^M.  (bind-to-key) does this.
  279.     3.  A request to use the default.  This is usually the current
  280.       thing being manipulated (where thing is buffer, file, etc).
  281.       eg (write-file) defaults to current file name and (kill-buffer)
  282.       defaults to current buffer name.
  283.  
  284. ========================================================================
  285. ==            NOTES                          ==
  286. ========================================================================
  287. In this  document, you will see command  names  surrounded by parens (eg
  288.   (beginning-of-line)).  If the  command is bound, you can  execute  the
  289.   command  by   pressing   the  keys  it  is  bound  to.  For   example,
  290.   (beginning-of-line)  is bound to C-A, so holding  down the control  key
  291.   and pressing A will move the cursor the the beginning of the line.  If
  292.   the  command  is not bound (or you don't  remember  or want to use the
  293.   binding),    you   can   also    execute    the   command   by   using
  294.   (ME-command).
  295.  
  296. ========================================================================
  297. ==            COMMANDS                      ==
  298. ========================================================================
  299. COMMAND    name, default binding, args and comments
  300.   These all return a BOOLEAN.
  301. (abort)        C-G
  302.   Back out of anything.
  303.   If remembering a macro, forget it.
  304.   If executing a program, stop it.
  305.   This only works when ME is waiting for a key press (ie it won't halt
  306.     pgms in a infinite loop or runaway pgms that aren't looking at the
  307.     keyboard).
  308. (apropos)    M-?    args: keyword
  309.   List all commands and programs that have a keyword in them.  For example,
  310.     if you apropos commands with "mark" in them you might get something like:
  311.     PROGRAMS:
  312.     mark-and-end               F-B
  313.     mark-and-home              F-A
  314.     COMMANDS:
  315.     exchange-dot-and-mark      C-XC-X 
  316.     set-mark                   C-@ M-  F-N
  317.     On the left is the command  name.  On the right are the key(s) bound
  318.       to  the  command.  So,  in  this  case,  (set-mark)  is  bound  to
  319.       control-@, meta-space and softkey-N.
  320.   Command completion is on.
  321.   See also: (describe-bindings).
  322.  
  323. (beginning-of-buffer)    M-<
  324.   Move the dot to the top of the buffer.
  325.   See also: (end-of-buffer).
  326. (beginning-of-line)    C-A
  327.   Move the dot to the start of the line.
  328.   See also: (end-of-line).
  329. (bind-local-key)    Not bound.    args: command name, keystroke(s)
  330.   Same as (bind-to-key) but the binding is in effect only in the buffer it
  331.     was bound in.
  332.   Note that local bindings take precedence over global ones.
  333. (bind-to-key)        Not bound.    args: command name, keystroke(s)
  334.   Attach a key to a command or  program.  When ever the key is  pressed,
  335.     the command or program will be executed  (except  when a question is
  336.     being asked).
  337.   Possible keys are single key strokes and combo keystrokes.
  338.     Combo keys are prefixed keys, softkeys or modified keys.
  339.   When asked for the key just press the key(s).
  340.   If  programming,  use the keycode.  Keycodes  are ASCII (ie no control
  341.     characters and such)  representations of a key.  For example, META-D
  342.     is represented by the 3 characters  M-D,  control-C by ^C or C-C and
  343.     function  key 1 (aka  soft key 1) by F-1.  Keycodes  should  be used
  344.     when programming to avoid screwing up things like printers (when you
  345.     print out the file).  eg (bind-to-key "foo" "F-1").
  346.   To unbind a key, bind it to "".  (bind-to-key "" "F-1") will remove
  347.     anything bound to F-1 and make F-1 self insert.
  348.   Note: Always use uppercase for control keys if you use the ^ notation.
  349.   Command completion is on.
  350.   See also: (bind-local-key), (defun), keys (in the glossary above).
  351.  
  352. (case-region-lower)    C-XC-L
  353.   Convert a region to lower case.
  354. (case-region-upper)    C-XC-U
  355.   Convert a region to upper case.
  356. (case-word-capitalize)    M-C
  357.   Capitalize word after dot.
  358.   If dot is between words, searches forward to the start of the next word
  359.     and capitalizes that one.
  360.   If the dot is in the middle of a word, the letter after the dot is
  361.     capitalized.
  362.   See also: (modify-syntax-entry).
  363. (case-word-lower)    M-L
  364.   Convert word to lower case.
  365.   See (case-word-capitalize) for edge conditions.
  366.   See also: (modify-syntax-entry).
  367. (case-word-upper)    M-U
  368.   Convert word to upper case.
  369.   See (case-word-capitalize) for edge conditions.
  370.   See also: (modify-syntax-entry).
  371. (copy-region)        M-W
  372.   Copy a region to the kill buffer.  If the last command was
  373.     a kill command, append to the kill buffer.  The region is unaffected.
  374.   Returns TRUE if region copied, FALSE if no region, ABORT if the kill
  375.     buffer runs out of space.
  376.   See also: (kill-region), (yank).
  377.  
  378. (delete-character)        C-D or F-H (delete)
  379.   Delete the character after the dot (visually under the cursor).  If at
  380.     the end of the line, the next line is joined to the current line.  If
  381.     given an argument, deleted characters are put into the kill buffer.
  382. (delete-other-windows)    C-X1
  383.   Make the current window the only window on the screen.
  384.   See also: (split-window).
  385. (delete-previous-character)    C-H or DEL
  386.   Delete  the  character  before  the dot  (visually  to the left of the
  387.     cursor).  If at the  beginning  of the  line,  the  current  line is
  388.     joined  to the end of the  previous  line.  If  given  an  argument,
  389.     deleted characters are put into the kill buffer.
  390. (delete-previous-word)    M-DEL or M-C-H
  391.   Delete the previous word.  Save them in the kill buffer.
  392.   See also: (modify-syntax-entry).  
  393. (delete-word)        M-D
  394.   Delete a word.  Save them in the kill buffer.
  395.   See also: (modify-syntax-entry).  
  396. (describe-bindings)    Not bound
  397.   List all commands and programs along with their key bindings in the same
  398.     format as (apropos).
  399.   See also: (apropos).
  400.  
  401. (end-macro)    C-X)
  402.   Stop remembering keystrokes.  The keystrokes are stored in the macro
  403.     buffer ready to be replayed by (execute-macro).
  404.   See also: (execute-macro), (start-macro).
  405. (end-of-buffer)    M->
  406.   Move the dot to the bottom of the buffer.
  407.   See also: (beginning-of-buffer).
  408. (end-of-line)    C-E
  409.   Move the dot to the end of the line.
  410.   See also: (beginning-of-line).
  411. (enlarge-window)    C-XZ
  412.   Enlarge the current window by a line.
  413.   See also: (shrink-window).
  414. (erase-region)        Not bound
  415.   Delete a region.  The region is NOT saved.
  416.   See also: (kill-region).
  417. (exchange-dot-and-mark)    C-XC-X
  418.   Move the dot to the mark and set the mark to old dot value.  Visually,
  419.     move to where the mark was set.  Repeating this command will undo it.
  420.   With an argument, goes to the nth mark.
  421.   See also: (set-mark).
  422. (execute-macro)        C-XE
  423.   Replay the keystrokes saved in the macro buffer.
  424.   See also: (start-macro), (end-macro).
  425. (exit)            C-C or C-XC-C    args: [yes or no]
  426.   Exit ME.  If there is a modified buffer (one that has changed since it
  427.     was last saved), you are asked about it.
  428.   If n, quit no matter what and without making any noise.
  429.  
  430. (filter-region)        Not bound    args: filter name
  431.   Take a region and feed it to a filter as standard input.
  432.   Take the output of the filter and use it to replace the region.
  433.   For example:  If the region is a paragraph and adjust is a program that
  434.     formats text then (filter-region "adjust") will replace the paragraph
  435.     with a formatted copy.
  436.   If you don't want to remove anything, just make a null region (set the
  437.     mark at the dot).  eg (set-mark)(filter-region "ls") will insert a
  438.     directory listing at the dot.
  439.   The region is put into the kill buffer so if the filter dies or screws
  440.     up, just (yank) to restore the region.
  441.   filter-region uses 2 files to hold the input and output of the filter.
  442.     On UNIX, these are put in /tmp.  On other systems, they are put in
  443.     the current directory.  You can change the directory with a
  444.     environment variable.
  445.       UNIX : TMP is used to hold the directory.  eg /v0/users/craig
  446.         Note that ME adds a trailing "/" to the name.
  447.       others : TMP is used.  eg in MS-DOS, if you have a RAM disk
  448.         configured as drive D and want the files put in the root:
  449.     SET TMP=D:\
  450.     Note:  A trailing slash is required if you have a path in
  451.     addition to the drive.
  452.     
  453. (goto-line)        M-G
  454.   Goto the beginning of the nth line of the buffer.
  455.   If an arg  prefix is  provided,  goto that  line.  Otherwise  the line
  456.     number is prompted for.
  457.   Line 0 and line 1 are both the first line.
  458.   Returns: FALSE if n>number of lines in the buffer.
  459.  
  460. (insert-file)        C-XC-I    args: file name
  461.   Insert a file into the buffer at the dot.  The file is unaffected.
  462.   See also: (read-file), (visit-file), (write-file).
  463.  
  464. (kill-buffer)        C-XK    args: buffer name, [yes or no]
  465.   Remove a buffer.  It disappears into ness-ness land.  Ask if the
  466.     buffer has been modified.  If the buffer is on the screen, replace
  467.     it with the (next-buffer).  If it is the only buffer, replace it
  468.     with "*scratch*".
  469.   Defaults to the current buffer.
  470.   Buffer name completion is on.
  471.   See also: (delete-other-windows).
  472. (kill-line)        C-K or F-K (clear line)
  473.   Delete text from dot to the end of the line.
  474.     If an argument is given:
  475.     If n = 0: kill from beginning of line to dot.
  476.     If n > 0: kill forward over n newlines.
  477.     If n < 0: error.
  478.   The deleted text is put into the kill buffer or appended to the kill
  479.     buffer if the last command was also a kill command.
  480.   See also: (delete-word), (delete-previous-word), (kill-region),
  481.     (yank).
  482. (kill-region)        C-W
  483.   Delete a region and save it in the kill buffer.  If the last command was
  484.     a kill command, append to the kill buffer.
  485.   See also: (copy-region), (erase-region), (kill-line),
  486.     (yank).
  487.  
  488. (load)        Not bound    args: file name
  489.   Load a Mutt executable file compiled with the Mutt compiler (MC).
  490.   The file "init.mco" is loaded when ME is fired up (unless it does not
  491.     exist).
  492.   If the file is not in the current directory, it is looked
  493.     for in ME directory (pointed to by the ME environment variable).  Note
  494.     that the ME var must end with a slash (eg ME=A:/foo/).
  495.   Notes:
  496.     The extension MUST be ".mco" and is optional (ie you don't have to
  497.       include it and if you do, I'll change it to ".mco").
  498.     With an arg prefix (ie ^U) there is no error message if the file
  499.       can't be found.
  500.   Warning:  A pgm should NOT try to load it self or the file it is
  501.     defined in (eg if foo is defined in bar.mut, foo should not try to
  502.     (load "bar").  This is because the old bar is discarded (to make
  503.     room for the new code) before foo finishes running (ie foo is thrown
  504.     away).  Depending on the OS, this may work but your asking for
  505.     trouble if you do it.
  506.   See also: documents on Mutt programming (MUTT.DOC and MEMUTT.DOC).
  507.  
  508. (ME-command)    M-X    args: command or program name
  509.   Execute a command or program.  ie one of the things listed in this
  510.     document.  When asked what to Execute: use the name as listed here
  511.     (without the "()"'s).  eg Execute: describe-bindings
  512.   Command completion is in effect.
  513.  
  514. (newline)        C-M
  515.   Insert a newline before the dot (visually before the cursor).
  516.   See also: (newline-and-indent), (open-line).
  517. (newline-and-indent)    C-J
  518.   Insert a newline before the dot and duplicate the indentation of the
  519.     previous line (the one the dot just left).
  520.   Note:  if  tab-stops==0,  tabs  are  used  where  possible.  Otherwise
  521.     only blanks are used.
  522.   See also: (newline), (open-line).
  523. (next-buffer)        Not bound
  524.   Replace the current  buffer  with the next buffer in the buffer  list,
  525.     skipping  the hidden  buffers.  The buffer  list is in  alphabetical
  526.     order.  The buffer is  circular,  ie, the last buffer is followed by
  527.     the first buffer.
  528.   See also:  (list-buffers), (switch-to-buffer), (use-existing-buffer).
  529. (next-character)    C-F or F-E (right arrow)
  530.   Move right a character.
  531.   See also: (previous-character).
  532. (next-line)        C-N or F-D (down arrow)
  533.   Move the dot vertically down the screen.  Trys to stay in the same
  534.     column.
  535.   Note:
  536.     Don't use this in a pgm unless you want column tracking (for example
  537.       binding an arrow key).  In most cases the column tracking gets in
  538.       the way and will confuse your pgm.  Use forward-line instead.
  539.       (see MEMUTT.DOC).
  540.   See also: (forward-line), (previous-line).
  541. (next-page)        C-V or F-J (page down)
  542.   Scroll forwards a page (window size -2).
  543.   See also: (previous-page).
  544. (next-window)        C-XN
  545.   Move to the next window down the screen and make it the current window.
  546.   See also: (previous-window)
  547. (next-word)        M-F
  548.   Move forwards until dot is after the end of a word or end of buffer.
  549.   See also: glossary, (previous-word), (delete-previous-word),
  550.     (delete-word), (modify-syntax-entry).
  551.  
  552. (open-line)        C-O (oh, not zero)
  553.   Insert a newline after the dot.  The dot does not move.
  554.   See also: (newline), (newline-and-indent).
  555.  
  556. (previous-character)    C-B F-F (left arrow)
  557.   Move the dot backwards by a character.
  558.   See also: (next-character).
  559. (previous-line)        C-P or F-C (up arrow)
  560.   Move the dot vertically up the screen.  Tries to stay in the same
  561.     column.
  562.   Note:
  563.     Don't use this in a pgm unless you want column tracking (for example
  564.       binding an arrow key).  In most cases the column tracking gets in
  565.       the way and will confuse your pgm.  Use forward-line instead.
  566.       (see MEMUTT.DOC).
  567.   See also: (forward-line), (next-line).
  568. (previous-page)        M-V or F-I (page up)
  569.   Scroll backwards a page (window size -2).
  570.   See also: (next-page).
  571. (previous-window)    C-XP
  572.   Move to the window immediately above the current window and make it the
  573.   current window.
  574.   See also: (next-window).
  575. (previous-word)        M-B
  576.   Move backwards until dot is at the beginning of a word or beginning of
  577.     buffer.
  578.   See also: (delete-previous-word), (delete-word), (next-word),
  579.     (modify-syntax-entry).
  580.  
  581. (query-replace)        M-Q    args: search string, replace string
  582.   Interactively search and replace strings.
  583.   If the replacements are successful, the cursor is left where the
  584.     replace started and the mark is after the last replacement.
  585.   If aborted, the cursor is left where the abort occurred and the mark is
  586.     where the replace started.
  587.   <ESC>,n,N : No, don't replace.  Go on to next match.
  588.   <SPACE>,y,Y : Yes, replace and go to next match.
  589.   ! : Replace all the rest without asking.
  590.   ^G : Abort.  The command stops and the cursor is left where it is.  To
  591.       get to the start of the query-replace, use (exchange-dot-and-mark).
  592.   Patterns are saved across searches.  See (search-forward).
  593.   If called from a pgm, the user is not prompted (unless told to).  This
  594.     is the same as "!".
  595.   See also: (search-xxx), (re-query-replace),
  596.     (re-search-forward), case-fold-search (in MUTT.DOC)
  597. (quote)            C-Q or C-^ (control-^)
  598.   Insert the next character typed into the buffer.  This is how to get
  599.     control characters and the like into the buffer.
  600.   Note: If you quote ALT keys or softkeys it will be pretty boring.
  601.  
  602. (re-search-forward)    Not bound    args: regular expression
  603.   Same as (search-forward) but using regular expressions.
  604.   See REGEXP.DOC for regular expression syntax.
  605.   See also: (query-replace), (search-forward), (re-search-forward)
  606.    in MEMUTT.DOC: case-fold-search, get-matched, looking-at
  607. (re-query-replace)    Not bound
  608.   args: regular expression search string, replace string
  609.   Same as (query-replace) but using regular expressions.
  610.   See REGEXP.DOC for regular expression syntax.
  611.   See also: (query-replace), (search-forward),
  612.     (re-search-forward), case-fold-search (in MEMUTT.DOC)
  613. (read-file)        C-XC-R    args: file name, [yes or no]
  614.   Clear the current buffer (asking if the buffer has been modified) and read
  615.     in a file.
  616.   The file name defaults to the file name of the current buffer.
  617.   See also: (insert-file), (visit-file), (write-file).
  618. (refresh-screen)    C-L
  619.   Repaint the screen.  If n, then center the dot vertically in the window.
  620.   See also: (center-cursor), (reposition-window).
  621. (reposition-window)    M-!
  622.   Move the current window so that the line the dot is on is n lines
  623.     from the top of the window.
  624.   If n<0, move the dot so that it is n lines from the bottom.
  625.   If n==0, the dot is centered vertically centered in the window.
  626.   See also: (center-cursor), (refresh-screen).
  627.  
  628. (save-buffer)        C-XC-S
  629.   Write the current buffer to the file associated with it.  Does not
  630.     do anything if the buffer is unmodified.  If you want to force a write,
  631.     use (write-file).
  632.   See also:  (write-file).
  633. (scroll-down)        C-XC-N or F-O (oh) (roll up)
  634.   Move the current window down by a line.  Visually, the dot moves up the
  635.     screen.
  636. (scroll-up)        C-XC-P or F-P (roll down)
  637.   Move the current window up by a line.  Visually, the dot moves down the
  638.     screen.
  639. (search-forward)    C-\ or C-S    args: search string
  640. (search-reverse)    C-R        args: search string
  641.   Search for a string.
  642.   CR ends patterns, LF (^J) => start of line.
  643.     The pattern is saved across searches.  The pattern is also the
  644.     default search pattern for the replace commands.  Whenever the
  645.     search pattern changes, the replace pattern is cleared (this is so
  646.     you can replace something with nothing).
  647.   (search-forward) The dot is after the last character matched.
  648.   (search-reverse) The dot is before the last character matched, or put
  649.     another way, to the left of the first character of the search string.
  650.   See also: (query-replace), (re-query-replace),
  651.     (re-search-forward), case-fold-search (in MUTT.DOC)
  652. (set-mark)        C-@ or M-SPACE or F-N (select)
  653.   Set the mark at the dot.  Visually, under the cursor.
  654.   With an argument, sets the nth mark.
  655.   See also: (exchange-dot-and-mark).
  656. (shell-command)    C-X!    args: op sys command
  657.   Call the operating system to perform a command or run a program and then
  658.     return to editing.
  659.   MS-DOS example:  To copy a file: (shell-command "copy foo bar")
  660.     To get a directory listing: (shell-command "ls").
  661.   See also: (filter-region), (spawn-shell).
  662. (shrink-window)        C-XC-Z
  663.   Shrink the current window by a line.
  664.   See also: (enlarge-window).
  665. (spawn-shell)        C-_
  666.   Jump to the  operating  system  shell for a while.  ME is still loaded
  667.     and will sit in the background  until you exit the shell (via "exit"
  668.     in MS-DOS).
  669.   In UNIX and MS-DOS, you can specify your shell with the SHELL
  670.     environment variable (eg set SHELL=MUSH.EXE).
  671.   See also: (shell-command), (filter-region).
  672. (split-window)        C-X2
  673.   Make 2 windows out of the  current  window.  A window with less than 3
  674.     lines cannot be split.
  675.   See also: (delete-other-windows).
  676. (start-macro)        C-X(
  677.   Start remembering keystrokes until (end-macro).
  678.   (abort) will terminate and back out of the macro.
  679.   See also: (end-macro), (execute-macro).
  680. (switch-to-buffer)    C-XB    args: buffer name
  681.   Replace the current window with another buffer.  The buffer name has a
  682.     max length of 15 characters.
  683.   Buffer name completion is on.
  684.   See also: (list-buffers), (next-buffer), (use-existing-buffer).
  685.  
  686. (tab)            C-I or the tab key
  687.   Insert tab(s).
  688.   Move to the next tab stop.  With argument, move n tabs.
  689.   To set the tab stops, see tab-stops in MEMUTT.DOC.
  690.  
  691. (universal-argument)    C-U
  692.   Get a numeric count for the next command.  The next command or program
  693.     is performed count times.  If the command is a self-insert, count
  694.     copies of the character are inserted.
  695.   Count starts at 4 (except as noted below).  If the first key pressed
  696.     after ^U is "-", count becomes negative.  Pressing ^U multiplies
  697.     count by 4.  If a non digit is pressed, whatever is bound to that
  698.     key is performed count times.  Otherwise, count becomes the next
  699.     digits pressed.
  700.   For example, ^U^F will move forward 4 characters, ^U^U^F 16
  701.     characters, ^U123 123 characters.  ^U5@ will insert "@@@@@".
  702.   If (universal-argument) is given an argument, the count starts there.
  703.     For example, in some Emacses, META digit starts the count at digit.
  704.     See arg-prefix in MEMUTT.DOC for how to implement this.
  705.   (universal-argument) ignores running programs and will read from the
  706.     keyboard.  Use arg-prefix if you wish pass an argument to something.
  707.   See also: arg-prefix (in MEMUTT.DOC).
  708. (use-existing-buffer)    ^XC-O (oh)    args: name of existing buffer
  709.   Replace the current window with a buffer that already exists.
  710.   Buffer name completion is on.
  711.   See also: (list-buffers), (switch-to-buffer).
  712.  
  713. (version)        Not bound
  714.   Show the version of ME.
  715. (visit-file)    C-XC-F or C-XC-V  args: file name
  716.   Split the current buffer.  If the file is already loaded, switch to
  717.     it.  Otherwise, read in the file.  A buffer name is created from the
  718.     file name by stripping off the directory info and keeping the name
  719.     and extension.  The dot is set to the beginning of the buffer and
  720.     the marks are erased.
  721.   If the buffer already exists and the filenames are different (eg "foo"
  722.     and "../foo" both generate the buffer name "foo"), a unique buffer
  723.     name is constructed by appending "<1>", "<2>", etc, using the lowest
  724.     number that makes a name not already in use.
  725.   See also: (insert-file), (read-file), (write-file).
  726.  
  727. (write-file)        C-XC-W    args: file-name
  728.   Write the current buffer to a file.  If the file exists, it is
  729.     overwritten.  If the file does not already exist, it is created.
  730.   file-name defaults to the file name of the current buffer.
  731.   Note that the buffer name and file name do NOT change.  Some Emacses
  732.     change the file name to file-name.  If you like this behavior, try:
  733.     (defun write-named-file
  734.     {(rename-buffer (ask "Write named file: "))(write-file "")})
  735.   See also: (insert-file), (read-file), (save-buffer), (visit-file).
  736.  
  737. (yank)    C-Y
  738.   Insert the contents of the killbuffer before the dot (visually before the
  739.     cursor).  Does not affect the kill buffer.
  740.   The dot is left after the yanked text.  The mark does not move.
  741.   See also: (copy-region), (kill-line), (kill-region).
  742.