Annotation of 43BSDReno/contrib/emacs-18.55/info/emacs-2, revision 1.1.1.1

1.1       root        1: Info file emacs, produced by texinfo-format-buffer   -*-Text-*-
                      2: from file emacs.tex
                      3: 
                      4: This file documents the GNU Emacs editor.
                      5: 
                      6: Copyright (C) 1985, 1986 Richard M. Stallman.
                      7: 
                      8: Permission is granted to make and distribute verbatim copies of
                      9: this manual provided the copyright notice and this permission notice
                     10: are preserved on all copies.
                     11: 
                     12: Permission is granted to copy and distribute modified versions of this
                     13: manual under the conditions for verbatim copying, provided also that the
                     14: sections entitled "The GNU Manifesto", "Distribution" and "GNU Emacs
                     15: General Public License" are included exactly as in the original, and
                     16: provided that the entire resulting derived work is distributed under the
                     17: terms of a permission notice identical to this one.
                     18: 
                     19: Permission is granted to copy and distribute translations of this manual
                     20: into another language, under the above conditions for modified versions,
                     21: except that the sections entitled "The GNU Manifesto", "Distribution"
                     22: and "GNU Emacs General Public License" may be included in a translation
                     23: approved by the author instead of in the original English.
                     24: 
                     25: 
                     26: File: emacs  Node: Basic, Prev: Command Switches, Up: Top, Next: Undo
                     27: 
                     28: Basic Editing Commands
                     29: **********************
                     30: 
                     31:   We now give the basics of how to enter text, make corrections, and
                     32: save the text in a file.  If this material is new to you, you might
                     33: learn it more easily by running the Emacs learn-by-doing tutorial.  To
                     34: do this, type `Control-h t' (`help-with-tutorial').
                     35: 
                     36: 
                     37: Inserting Text
                     38: ==============
                     39: 
                     40:   To insert printing characters into the text you are editing, just type
                     41: them.  This inserts the character into the buffer at the cursor (that is,
                     42: at "point"; *Note Point::).  The cursor moves forward.  Any characters
                     43: after the cursor move forward too.  If the text in the buffer is
                     44: `FOOBAR', with the cursor before the `B', then if you type
                     45: `XX', you get `FOOXXBAR', with the cursor still before the
                     46: `B'.
                     47: 
                     48:    To "delete" text you have just inserted, use DEL.  DEL
                     49: deletes the character BEFORE the cursor (not the one that the cursor
                     50: is on top of or under; that is the character AFTER the cursor).  The
                     51: cursor and all characters after it move backwards.  Therefore, if you type
                     52: a printing character and then type DEL, they cancel out.
                     53: 
                     54:    To end a line and start typing a new one, type RET.  This inserts
                     55: a newline character in the buffer.  If point is in the middle of a line,
                     56: RET splits the line.  Typing DEL when the cursor is at the
                     57: beginning of a line rubs out the newline before the line, thus joining the
                     58: line with the preceding line.  
                     59: 
                     60:   Emacs will split lines automatically when they become too long, if you
                     61: turn on a special mode called "Auto Fill" mode.  *Note Filling::, for
                     62: how to use Auto Fill mode.
                     63: 
                     64:   Customization information: DEL in most modes runs the command named
                     65: `delete-backward-char'; RET runs the command `newline', and
                     66: self-inserting printing characters run the command `self-insert',
                     67: which inserts whatever character was typed to invoke it.  Some major modes
                     68: rebind DEL to other commands.
                     69: 
                     70:   Direct insertion works for printing characters and SPC, but other
                     71: characters act as editing commands and do not insert themselves.  If you
                     72: need to insert a control character or a character whose code is above 200
                     73: octal, you must "quote" it by typing the character `control-q'
                     74: (`quoted-insert') first.  There are two ways to use `C-q':
                     75: 
                     76:    * `Control-q' followed by any non-graphic character (even `C-g')
                     77:      inserts that character.
                     78:    * `Control-q' followed by three octal digits inserts the character
                     79:      with the specified character code.
                     80: 
                     81: A numeric argument to `C-q' specifies how many copies of the
                     82: quoted character should be inserted (*Note Arguments::).
                     83: 
                     84:   If you prefer to have text characters replace (overwrite) existing
                     85: text rather than shove it to the right, you can enable Overwrite mode,
                     86: a minor mode.  *Note Minor Modes::.
                     87: 
                     88: 
                     89: Changing the Location of Point
                     90: ==============================
                     91: 
                     92:   To do more than insert characters, you have to know how to move
                     93: point (*Note Point::).  Here are a few of the commands for doing that.
                     94: 
                     95: `C-a'     
                     96:      Move to the beginning of the line (`beginning-of-line').
                     97: `C-e'     
                     98:      Move to the end of the line (`end-of-line').
                     99: `C-f'     
                    100:      Move forward one character (`forward-char').
                    101: `C-b'     
                    102:      Move backward one character (`backward-char').
                    103: `M-f'     
                    104:      Move forward one word (`forward-word').
                    105: `M-b'     
                    106:      Move backward one word (`backward-word').
                    107: `C-n'     
                    108:      Move down one line, vertically (`next-line').  This command
                    109:      attempts to keep the horizontal position unchanged, so if you start in
                    110:      the middle of one line, you end in the middle of the next.  When on
                    111:      the last line of text, `C-n' creates a new line and moves onto it.
                    112: `C-p'     
                    113:      Move up one line, vertically (`previous-line').
                    114: `C-l'     
                    115:      Clear the screen and reprint everything (`recenter').  Text moves
                    116:      on the screen to bring point to the center of the window.
                    117: `M-r'     
                    118:      Move point to left margin on the line halfway down the screen or
                    119:      window (`move-to-window-line').  Text does not move on the
                    120:      screen.  A numeric argument says how many screen lines down from the
                    121:      top of the window (zero for the top).  A negative argument counts from
                    122:      the bottom (-1 for the bottom).
                    123: `C-t'     
                    124:      Transpose two characters, the ones before and after the cursor
                    125:      (`transpose-chars').
                    126: `M-<'     
                    127:      Move to the top of the buffer (`beginning-of-buffer').  With numeric
                    128:      argument N, move to N/10 of the way from the top.  *Note Arguments::,
                    129:      for more information on numeric arguments.
                    130: `M->'     
                    131:      Move to the end of the buffer (`end-of-buffer').
                    132: `M-x goto-char'     
                    133:      Read a number N and move cursor to character number N.
                    134:      Position 1 is the beginning of the buffer.
                    135: `M-x goto-line'     
                    136:      Read a number N and move cursor to line number N.  Line 1
                    137:      is the beginning of the buffer.
                    138: `C-x C-n'     
                    139:      Use the current column of point as the "semipermanent goal column" for
                    140:      `C-n' and `C-p' (`set-goal-column').  Henceforth, those
                    141:      commands always move to this column in each line moved into, or as
                    142:      close as possible given the contents of the line.  This goal column remains
                    143:      in effect until canceled.
                    144: `C-u C-x C-n'     
                    145:      Cancel the goal column.  Henceforth, `C-n' and `C-p' once
                    146:      again try to avoid changing the horizontal position, as usual.
                    147: 
                    148:   If you set the variable `track-eol' to a non-`nil' value, then
                    149: `C-n' and `C-p' when at the end of the starting line move to the
                    150: end of the line.  Normally, `track-eol' is `nil'.
                    151: 
                    152: 
                    153: Erasing Text
                    154: ============
                    155: 
                    156: `DEL'     
                    157:      Delete the character before the cursor (`delete-backward-char').
                    158: `C-d'     
                    159:      Delete the character after the cursor (`delete-char').
                    160: `C-k'     
                    161:      Kill to the end of the line (`kill-line').
                    162: `M-d'     
                    163:      Kill forward to the end of the next word (`kill-word').
                    164: `M-DEL'     
                    165:      Kill back to the beginning of the previous word
                    166:      (`backward-kill-word').
                    167: 
                    168:   You already know about the DEL key which deletes the character
                    169: before the cursor.  Another key, `Control-d', deletes the character
                    170: after the cursor, causing the rest of the text on the line to shift left.
                    171: If `Control-d' is typed at the end of a line, that line and the next
                    172: line are joined together.
                    173: 
                    174:   To erase a larger amount of text, use the `Control-k' key, which
                    175: kills a line at a time.  If `C-k' is done at the beginning or middle of
                    176: a line, it kills all the text up to the end of the line.  If `C-k' is
                    177: done at the end of a line, it joins that line and the next line.
                    178: 
                    179:   *Note Killing::, for more flexible ways of killing text.
                    180: 
                    181: 
                    182: Files
                    183: =====
                    184: 
                    185:   The commands above are sufficient for creating and altering text in an
                    186: Emacs buffer; the more advanced Emacs commands just make things easier.
                    187: But to keep any text permanently you must put it in a "file".  Files
                    188: are named units of text which are stored by the operating system for you to
                    189: retrieve later by name.  To look at or use the contents of a file in any
                    190: way, including editing the file with Emacs, you must specify the file name.
                    191: 
                    192:   Consider a file named `/usr/rms/foo.c'.  In Emacs, to begin editing
                    193: this file, type
                    194: 
                    195:      C-x C-f /usr/rms/foo.c RET
                    196: 
                    197: Here the file name is given as an "argument" to the command `C-x C-f'
                    198: (`find-file').  That command uses the "minibuffer" to read the argument,
                    199: and you type RET to terminate the argument (*Note Minibuffer::).
                    200: 
                    201:   Emacs obeys the command by "visiting" the file: creating a buffer,
                    202: copying the contents of the file into the buffer, and then displaying the
                    203: buffer for you to edit.  You can make changes in it, and then "save" the
                    204: file by typing `C-x C-s' (`save-buffer').  This makes the changes permanent
                    205: by copying the altered contents of the buffer back into the file
                    206: `/usr/rms/foo.c'.  Until then, the changes are only inside your Emacs, and
                    207: the file `foo.c' is not changed.
                    208: 
                    209:   To create a file, just visit the file with `C-x C-f' as if it already
                    210: existed.  Emacs will make an empty buffer in which you can insert the text
                    211: you want to put in the file.  When you save your text with `C-x C-s',
                    212: the file will be created.
                    213: 
                    214:   Of course, there is a lot more to learn about using files.  *Note Files::.
                    215: 
                    216: 
                    217: Help
                    218: ====
                    219: 
                    220:   If you forget what a key does, you can find out with the Help character,
                    221: which is `C-h'.  Type `C-h k' followed by the key you want to know about;
                    222: for example, `C-h k C-n' tells you all about what `C-n' does.  `C-h' is a
                    223: prefix key; `C-h k' is just one of its subcommands (the command
                    224: `describe-key').  The other subcommands of `C-h' provide different kinds of
                    225: help.  Type `C-h' three times to get a description of all the help
                    226: facilities.  *Note Help::.
                    227: 
                    228: * Menu:
                    229: 
                    230: * Blank Lines::        Commands to make or delete blank lines.
                    231: * Continuation Lines:: Lines too wide for the screen.
                    232: * Position Info::      What page, line, row, or column is point on?
                    233: * Arguments::         Numeric arguments for repeating a command.
                    234: 
                    235: 
                    236: File: emacs  Node: Blank Lines, Prev: Basic, Up: Basic, Next: Continuation Lines
                    237: 
                    238: Blank Lines
                    239: ===========
                    240: 
                    241:   Here are special commands and techniques for putting in and taking out
                    242: blank lines.
                    243: 
                    244: `C-o'     
                    245:      Insert one or more blank lines after the cursor (`open-line').
                    246: `C-x C-o'     
                    247:      Delete all but one of many consecutive blank lines
                    248:      (`delete-blank-lines').
                    249: 
                    250:   When you want to insert a new line of text before an existing line, you
                    251: can do it by typing the new line of text, followed by RET.  However,
                    252: it may be easier to see what you are doing if you first make a blank line
                    253: and then insert the desired text into it.  This is easy to do using the key
                    254: `C-o' (`open-line'), which inserts a newline after point but leaves
                    255: point in front of the newline.  After `C-o', type the text for the new
                    256: line.  `C-o F O O' has the same effect as `F O O RET', except for
                    257: the final location of point.
                    258: 
                    259:   You can make several blank lines by typing `C-o' several times, or by
                    260: giving it an argument to tell it how many blank lines to make.
                    261: *Note Arguments::, for how.
                    262: 
                    263:   If you have many blank lines in a row and want to get rid of them, use
                    264: `C-x C-o' (`delete-blank-lines').  When point is on a blank line which
                    265: is adjacent to at least one other blank line, `C-x C-o' deletes all but
                    266: one of the consecutive blank lines, leaving exactly one.  With point on a
                    267: blank line with no other blank line adjacent to it, the sole blank line is
                    268: deleted, leaving none.  When point is on a nonblank line, `C-x C-o'
                    269: deletes any blank lines following that nonblank line.
                    270: 
                    271: 
                    272: File: emacs  Node: Continuation Lines, Prev: Blank Lines, Up: Basic, Next: Position Info
                    273: 
                    274: Continuation Lines
                    275: ==================
                    276: 
                    277:   If you add too many characters to one line, without breaking it with a
                    278: RET, the line will grow to occupy two (or more) lines on the screen,
                    279: with a `\' at the extreme right margin of all but the last of them.
                    280: The `\' says that the following screen line is not really a distinct
                    281: line in the text, but just the "continuation" of a line too long to fit
                    282: the screen.  Sometimes it is nice to have Emacs insert newlines
                    283: automatically when a line gets too long; for this, use Auto Fill mode
                    284: (*Note Filling::).
                    285: 
                    286:   Instead of continuation, long lines can be displayed by "truncation".
                    287: This means that all the characters that do not fit in the width of the
                    288: screen or window do not appear at all.  They remain in the buffer,
                    289: temporarily invisible.  `$' is used in the last column instead of
                    290: `\' to inform you that truncation is in effect.
                    291: 
                    292:   Continuation can be turned off for a particular buffer by setting the
                    293: variable `truncate-lines' to non-`nil' in that buffer.  Truncation instead
                    294: of continuation also happens whenever horizontal scrolling is in use, and
                    295: optionally whenever side-by-side windows are in use (*Note Windows::).
                    296: Altering the value of `truncate-lines' makes it local to the current
                    297: buffer; until that time, the default value is in effect.  The default is
                    298: initially `nil'.  *Note Locals::.
                    299: 
                    300: 
                    301: File: emacs  Node: Position Info, Prev: Continuation Lines, Up: Basic, Next: Arguments
                    302: 
                    303: Cursor Position Information
                    304: ===========================
                    305: 
                    306:   If you are accustomed to other display editors, you may be surprised that
                    307: Emacs does not always display the page number or line number of point in
                    308: the mode line.  This is because the text is stored in a way that makes it
                    309: difficult to compute this information.  Displaying them all the time would
                    310: be intolerably slow.  They are not needed very often in Emacs anyway,
                    311: but there are commands to compute them and print them.
                    312: 
                    313: `M-x what-page'     
                    314:      Print page number of point, and line number within page.
                    315: `M-x what-line'     
                    316:      Print line number of point in the buffer.
                    317: `M-='     
                    318:      Print number of lines in the current region (`count-lines-region').
                    319: `C-x ='     
                    320:      Print character code of character after point, character position of
                    321:      point, and column of point (`what-cursor-position').
                    322: 
                    323:   There are two commands for printing line numbers.  `M-x what-line'
                    324: counts lines from the beginning of the file and prints the line number
                    325: point is on.  The first line of the file is line number 1.  These numbers
                    326: can be used as arguments to `M-x goto-line'.  By contrast, `M-x
                    327: what-page' counts pages from the beginning of the file, and counts lines
                    328: within the page, printing both of them.  *Note Pages::.
                    329: 
                    330:   While on this subject, we might as well mention `M-=' (`count-lines-region'),
                    331: which prints the number of lines in the region (*Note Mark::).
                    332: *Note Pages::, for the command `C-x l' which counts the lines in the
                    333: current page.
                    334: 
                    335:   The command `C-x =' (`what-cursor-position') can be used to find out
                    336: the column that the cursor is in, and other miscellaneous information about
                    337: point.  It prints a line in the echo area that looks like this:
                    338: 
                    339:      Char: x (0170)  point=65986 of 563027(12%)  x=44
                    340: 
                    341: (In fact, this is the output produced when point is before the `x=44'
                    342: in the example.)
                    343: 
                    344:   The two values after `Char:' describe the character following point,
                    345: first by showing it and second by giving its octal character code.
                    346: 
                    347:   `point=' is followed by the position of point expressed as a character
                    348: count.  The front of the buffer counts as position 1, one character later
                    349: as 2, and so on.  The next, larger number is the total number of characters
                    350: in the buffer.  Afterward in parentheses comes the position expressed as a
                    351: percentage of the total size.
                    352: 
                    353:   `x=' is followed by the horizontal position of point, in columns from the
                    354: left edge of the window.
                    355: 
                    356:   If the buffer has been narrowed, making some of the text at the beginning and
                    357: the end temporarily invisible, `C-x =' prints additional text describing the
                    358: current visible range.  For example, it might say
                    359: 
                    360:      Char: x (0170)  point=65986 of 563025(12%) <65102 - 68533>  x=44
                    361: 
                    362: where the two extra numbers give the smallest and largest character position
                    363: that point is allowed to assume.  The characters between those two positions
                    364: are the visible ones.  *Note Narrowing::.
                    365: 
                    366:   If point is at the end of the buffer (or the end of the visible part),
                    367: `C-x =' omits any description of the character after point.
                    368: The output looks like
                    369: 
                    370:      point=563026 of 563025(100%)  x=0
                    371: 
                    372: 
                    373: File: emacs  Node: Arguments, Prev: Position Info, Up: Basic
                    374: 
                    375: Numeric Arguments
                    376: =================
                    377: 
                    378:   Any Emacs command can be given a "numeric argument".  Some commands
                    379: interpret the argument as a repetition count.  For example, giving an
                    380: argument of ten to the key `C-f' (the command `forward-char', move
                    381: forward one character) moves forward ten characters.  With these commands,
                    382: no argument is equivalent to an argument of one.  Negative arguments are
                    383: allowed.  Often they tell a command to move or act backwards.
                    384: 
                    385:   If your terminal keyboard has a META key, the easiest way to
                    386: specify a numeric argument is to type digits and/or a minus sign while
                    387: holding down the the META key.  For example,
                    388:      M-5 C-n
                    389: would move down five lines.  The characters `Meta-1', `Meta-2', and
                    390: so on, as well as `Meta--', do this because they are keys bound to
                    391: commands (`digit-argument' and `negative-argument') that are
                    392: defined to contribute to an argument for the next command.
                    393: 
                    394:   Another way of specifying an argument is to use the `C-u'
                    395: (`universal-argument') command followed by the digits of the argument.
                    396: With `C-u', you can type the argument digits without holding
                    397: down shift keys.  To type a negative argument, start with a minus sign.
                    398: Just a minus sign normally means -1.  `C-u' works on all terminals.
                    399: 
                    400:   `C-u' followed by a character which is neither a digit nor a minus sign
                    401: has the special meaning of "multiply by four".  It multiplies the argument
                    402: for the next command by four.  `C-u' twice multiplies it by sixteen.  Thus,
                    403: `C-u C-u C-f' moves forward sixteen characters.  This is a good way to move
                    404: forward "fast", since it moves about 1/5 of a line in the usual size
                    405: screen.  Other useful combinations are `C-u C-n', `C-u C-u C-n' (move down
                    406: a good fraction of a screen), `C-u C-u C-o' (make "a lot" of blank lines),
                    407: and `C-u C-k' (kill four lines).
                    408: 
                    409:   Some commands care only about whether there is an argument, and not about
                    410: its value.  For example, the command `M-q' (`fill-paragraph') with
                    411: no argument fills text; with an argument, it justifies the text as well.
                    412: (*Note Filling::, for more information on `M-q'.)  Just `C-u' is a
                    413: handy way of providing an argument for such commands.
                    414: 
                    415:   Some commands use the value of the argument as a repeat count, but do
                    416: something peculiar when there is no argument.  For example, the command
                    417: `C-k' (`kill-line') with argument N kills N lines, including their
                    418: terminating newlines.  But `C-k' with no argument is special: it kills the
                    419: text up to the next newline, or, if point is right at the end of the line,
                    420: it kills the newline itself.  Thus, two `C-k' commands with no arguments
                    421: can kill a nonblank line, just like `C-k' with an argument of one.  (*Note
                    422: Killing::, for more information on `C-k'.)
                    423: 
                    424:   A few commands treat a plain `C-u' differently from an ordinary
                    425: argument.  A few others may treat an argument of just a minus sign
                    426: differently from an argument of -1.  These unusual cases will be described
                    427: when they come up; they are always for reasons of convenience of use of the
                    428: individual command.
                    429: 
                    430: 
                    431: 
                    432: File: emacs  Node: Undo, Prev: Basic, Up: Top, Next: Minibuffer
                    433: 
                    434: Undoing Changes
                    435: ***************
                    436: 
                    437:   Emacs allows all changes made in the text of a buffer to be undone,
                    438: up to a certain amount of change (8000 characters).  Each buffer records
                    439: changes individually, and the undo command always applies to the
                    440: current buffer.  Usually each editing command makes a separate entry
                    441: in the undo records, but some commands such as `query-replace'
                    442: make many entries, and very simple commands such as self-inserting
                    443: characters are often grouped to make undoing less tedious.
                    444: 
                    445: `C-x u'     
                    446:      Undo one batch of changes (usually, one command worth) (`undo').
                    447: `C-_'     
                    448:      The same.
                    449: 
                    450:   The command `C-x u' or `C-_' is how you undo.  The first time you give
                    451: this command, it undoes the last change.  Point moves to the text
                    452: affected by the undo, so you can see what was undone.
                    453: 
                    454:   Consecutive repetitions of the `C-_' or `C-x u' commands undo earlier
                    455: and earlier changes, back to the limit of what has been recorded.  If all
                    456: recorded changes have already been undone, the undo command prints an error
                    457: message and does nothing.
                    458: 
                    459:   Any command other than an undo command breaks the sequence of undo
                    460: commands.  Starting at this moment, the previous undo commands are
                    461: considered ordinary changes that can themselves be undone.  Thus, you can
                    462: redo changes you have undone by typing `C-f' or any other command that
                    463: will have no important effect, and then using more undo commands.
                    464: 
                    465:   If you notice that a buffer has been modified accidentally, the easiest
                    466: way to recover is to type `C-_' repeatedly until the stars disappear
                    467: from the front of the mode line.  At this time, all the modifications you
                    468: made have been cancelled.  If you do not remember whether you changed the
                    469: buffer deliberately, type `C-_' once, and when you see the last change
                    470: you made undone, you will remember why you made it.  If it was an accident,
                    471: leave it undone.  If it was deliberate, redo the change as described in the
                    472: preceding paragraph.
                    473: 
                    474:   Whenever an undo command makes the stars disappear from the mode line,
                    475: it means that the buffer contents are the same as they were when the
                    476: file was last read in or saved.
                    477: 
                    478:   Not all buffers record undo information.  Buffers whose names start with
                    479: spaces don't; these buffers are used internally by Emacs and its extensions
                    480: to hold text that users don't normally look at or edit.  Also, minibuffers,
                    481: help buffers and documentation buffers don't record undo information.
                    482: 
                    483:   At most 8000 or so characters of deleted or modified text can be
                    484: remembered in any one buffer for reinsertion by the undo command.  Also,
                    485: there is a limit on the number of individual insert, delete or change
                    486: actions that can be remembered.
                    487: 
                    488:   The reason the `undo' command has two keys, `C-x u' and `C-_', set
                    489: up to run it is that it is worthy of a single-character key, but the way to
                    490: type `C-_' on some keyboards is not obvious.  `C-x u' is an alternative
                    491: you can type in the same fashion on any terminal.
                    492: 
                    493: 
                    494: File: emacs  Node: Minibuffer, Prev: Undo, Up: Top, Next: M-x
                    495: 
                    496: The Minibuffer
                    497: **************
                    498: 
                    499:   The "minibuffer" is the facility used by Emacs commands to read
                    500: arguments more complicated than a single number.  Minibuffer arguments can
                    501: be file names, buffer names, Lisp function names, Emacs command names, Lisp
                    502: expressions, and many other things, depending on the command reading the
                    503: argument.  The usual Emacs editing commands can be used in the minibuffer
                    504: to edit the argument.
                    505: 
                    506:   When the minibuffer is in use, it appears in the echo area, and the
                    507: terminal's cursor moves there.  The beginning of the minibuffer line
                    508: displays a "prompt" which says what kind of input you should supply and
                    509: how it will be used.  Often this prompt is derived from the name of the
                    510: command that the argument is for.  The prompt normally ends with a colon.
                    511: 
                    512:   Sometimes a "default argument" appears in parentheses after the
                    513: colon; it too is part of the prompt.  The default will be used as the
                    514: argument value if you enter an empty argument (e.g., just type RET).
                    515: For example, commands that read buffer names always show a default, which
                    516: is the name of the buffer that will be used if you type just RET.
                    517: 
                    518:   The simplest way to give a minibuffer argument is to type the text you
                    519: want, terminated by RET which exits the minibuffer.  You can get out
                    520: of the minibuffer, canceling the command that it was for, by typing
                    521: `C-g'.
                    522: 
                    523:   Since the minibuffer uses the screen space of the echo area, it can
                    524: conflict with other ways Emacs customarily uses the echo area.  Here is how
                    525: Emacs handles such conflicts:
                    526: 
                    527:    * If a command gets an error while you are in the minibuffer, this does
                    528:      not cancel the minibuffer.  However, the echo area is needed for the
                    529:      error message and therefore the minibuffer itself is hidden for a
                    530:      while.  It comes back after a few seconds, or as soon as you type
                    531:      anything.
                    532:      
                    533:    * If in the minibuffer you use a command whose purpose is to print a
                    534:      message in the echo area, such as `C-x =', the message is printed
                    535:      normally, and the minibuffer is hidden for a while.  It comes back
                    536:      after a few seconds, or as soon as you type anything.
                    537:      
                    538:    * Echoing of keystrokes does not take place while the minibuffer is in
                    539:      use.
                    540: 
                    541: * Menu:
                    542: 
                    543: * File: Minibuffer File.  Entering file names with the minibuffer.
                    544: * Edit: Minibuffer Edit.  How to edit in the minibuffer.
                    545: * Completion::           An abbreviation facility for minibuffer input.
                    546: * Repetition::           Re-executing commands that used the minibuffer.
                    547: 
                    548: 
                    549: File: emacs  Node: Minibuffer File, Prev: Minibuffer, Up: Minibuffer, Next: Minibuffer Edit
                    550: 
                    551: Minibuffers for File Names
                    552: ==========================
                    553: 
                    554:   Sometimes the minibuffer starts out with text in it.  For example, when
                    555: you are supposed to give a file name, the minibuffer starts out containing
                    556: the "default directory", which ends with a slash.  This is to inform
                    557: you which directory the file will be found in if you do not specify a
                    558: directory.  For example, the minibuffer might start out with
                    559: 
                    560:      Find File: /u2/emacs/src/
                    561: 
                    562: where `Find File: ' is the prompt.  Typing `buffer.c' specifies the file
                    563: `/u2/emacs/src/buffer.c'.  To find files in nearby directories, use `..';
                    564: thus, if you type `../lisp/simple.el', the file that you visit will be the
                    565: one named `/u2/emacs/lisp/simple.el'.  Alternatively, you can kill with
                    566: `M-DEL' the directory names you don't want (*Note Words::).
                    567: 
                    568:   You can also type an absolute file name, one starting with a slash or a
                    569: tilde, ignoring the default directory.  For example, to find the file
                    570: `/etc/termcap', just type the name, giving
                    571: 
                    572:      Find File: /u2/emacs/src//etc/termcap
                    573: 
                    574: Two slashes in a row are not normally meaningful in Unix file names, but
                    575: they are allowed in GNU Emacs.  They mean, "ignore everything before the
                    576: second slash in the pair."  Thus, `/u2/emacs/src/' is ignored, and
                    577: you get the file `/etc/termcap'.
                    578: 
                    579:   If you set `insert-default-directory' to `nil', the default directory
                    580: is not inserted in the minibuffer.  This way, the minibuffer starts out
                    581: empty.  But the name you type, if relative, is still interpreted with
                    582: respect to the same default directory.
                    583: 
                    584: 
                    585: File: emacs  Node: Minibuffer Edit, Prev: Minibuffer File, Up: Minibuffer, Next: Completion
                    586: 
                    587: Editing in the Minibuffer
                    588: =========================
                    589: 
                    590:   The minibuffer is an Emacs buffer (albeit a peculiar one), and the usual
                    591: Emacs commands are available for editing the text of an argument you are
                    592: entering.
                    593: 
                    594:   Since RET in the minibuffer is defined to exit the minibuffer,
                    595: inserting a newline into the minibuffer must be done with `C-o' or with
                    596: `C-q LFD'.  (Recall that a newline is really the LFD
                    597: character.)
                    598: 
                    599:   The minibuffer has its own window which always has space on the screen
                    600: but acts as if it were not there when the minibuffer is not in use.  When
                    601: the minibuffer is in use, its window is just like the others; you can
                    602: switch to another window with `C-x o', edit text in other windows and
                    603: perhaps even visit more files, before returning to the minibuffer to submit
                    604: the argument.  You can kill text in another window, return to the
                    605: minibuffer window, and then yank the text to use it in the argument.
                    606: *Note Windows::.
                    607: 
                    608:   There are some restrictions on the use of the minibuffer window, however.
                    609: You cannot switch buffers in it---the minibuffer and its window are
                    610: permanently attached.  Also, you cannot split or kill the minibuffer
                    611: window.  But you can make it taller in the normal fashion with `C-x ^'.
                    612: 
                    613:   If while in the minibuffer you issue a command that displays help text
                    614: of any sort in another window, then that window is identified as the
                    615: one to scroll if you type `C-M-v' while in the minibuffer.  This
                    616: lasts until you exit the minibuffer.  This feature comes into play
                    617: if a completing minibuffer gives you a list of possible completions.
                    618: 
                    619:   Recursive use of the minibuffer is supported by Emacs.  However, it is
                    620: easy to do this by accident (because of autorepeating keyboards, for
                    621: example) and get confused.  Therefore, most Emacs commands that use the
                    622: minibuffer refuse to operate if the minibuffer window is selected.  If the
                    623: minibuffer is active but you have switched to a different window, recursive
                    624: use of the minibuffer is allowed---if you know enough to try to do this,
                    625: you probably will not get confused.
                    626: 
                    627:   If you set the variable `enable-recursive-minibuffers' to be
                    628: non-`nil', recursive use of the minibuffer is always allowed.
                    629: 
                    630: 
                    631: File: emacs  Node: Completion, Prev: Minibuffer Edit, Up: Minibuffer, Next: Repetition
                    632: 
                    633: Completion
                    634: ==========
                    635: 
                    636:   When appropriate, the minibuffer provides a "completion" facility.
                    637: This means that you type enough of the argument to determine the rest,
                    638: based on Emacs's knowledge of which arguments make sense, and Emacs visibly
                    639: fills in the rest, or as much as can be determined from the part you have
                    640: typed.
                    641: 
                    642:   When completion is available, certain keys---TAB, RET, and SPC---are
                    643: redefined to complete an abbreviation present in the minibuffer into a
                    644: longer string that it stands for, by matching it against a set of
                    645: "completion alternatives" provided by the command reading the argument.
                    646: `?' is defined to display a list of possible completions of what you
                    647: have inserted.
                    648: 
                    649:   For example, when the minibuffer is being used by `Meta-x' to read
                    650: the name of a command, it is given a list of all available Emacs command
                    651: names to complete against.  The completion keys match the text in the
                    652: minibuffer against all the command names, find any additional characters of
                    653: the name that are implied by the ones already present in the minibuffer,
                    654: and add those characters to the ones you have given.
                    655: 
                    656:   Case is normally significant in completion, because it is significant in
                    657: most of the names that you can complete (buffer names, file names and
                    658: command names).  Thus, `fo' will not complete to `Foo'.  When you
                    659: are completing a name in which case does not matter, case may be ignored
                    660: for completion's sake if the program said to do so.
                    661: 
                    662: 
                    663: Completion Example
                    664: ------------------
                    665: 
                    666:   A concrete example may help here.  If you type `Meta-x au TAB', the TAB
                    667: looks for alternatives (in this case, command names) that start with `au'.
                    668: There are only two: `auto-fill-mode' and `auto-save-mode'.  These are the
                    669: same as far as `auto-', so the `au' in the minibuffer changes to `auto-'.
                    670: 
                    671:   If you type TAB again immediately, there are multiple possibilities
                    672: for the very next character---it could be `s' or `f'---so no more
                    673: characters are added; but a list of all possible completions is displayed
                    674: in another window.
                    675: 
                    676:   If you go on to type `f TAB', this TAB sees `auto-f'.  The only command
                    677: name starting this way is `auto-fill-mode', so completion inserts the rest
                    678: of that.  You now have `auto-fill-mode' in the minibuffer after typing just
                    679: `au TAB f TAB'.  Note that TAB has this effect because in the minibuffer it
                    680: is bound to the function `minibuffer-complete' when completion is supposed
                    681: to be done.
                    682: 
                    683: 
                    684: Completion Commands
                    685: -------------------
                    686: 
                    687:   Here is a list of all the completion commands, defined in the minibuffer
                    688: when completion is available.
                    689: 
                    690: `TAB'     
                    691:      Complete the text in the minibuffer as much as possible 
                    692:      (`minibuffer-complete').
                    693: `SPC'     
                    694:      Complete the text in the minibuffer but don't add or fill out more
                    695:      than one word (`minibuffer-complete-word').
                    696: `RET'     
                    697:      Submit the text in the minibuffer as the argument, possibly completing
                    698:      first as described below (`minibuffer-complete-and-exit').
                    699: `?'     
                    700:      Print a list of all possible completions of the text in the minibuffer
                    701:      (`minibuffer-list-completions').
                    702: 
                    703:   SPC completes much like TAB, but never goes beyond the next hyphen or
                    704: space.  If you have `auto-f' in the minibuffer and type SPC, it finds that
                    705: the completion is `auto-fill-mode', but it stops completing after `fill-'.
                    706: This gives `auto-fill-'.  Another SPC at this point completes all the way
                    707: to `auto-fill-mode'.  SPC in the minibuffer runs the function
                    708: `minibuffer-complete-word' when completion is available.
                    709: 
                    710:   There are three different ways that RET can work in completing
                    711: minibuffers, depending on how the argument will be used.
                    712: 
                    713:    * "Strict" completion is used when it is meaningless to give any
                    714:      argument except one of the known alternatives.  For example, when
                    715:      `C-x k' reads the name of a buffer to kill, it is meaningless to
                    716:      give anything but the name of an existing buffer.  In strict
                    717:      completion, RET refuses to exit if the text in the minibuffer
                    718:      does not complete to an exact match.
                    719:      
                    720:    * "Cautious" completion is similar to strict completion, except that
                    721:      RET exits only if the text was an exact match already, not
                    722:      needing completion.  If the text is not an exact match, RET does
                    723:      not exit, but it does complete the text.  If it completes to an exact
                    724:      match, a second RET will exit.
                    725:      
                    726:      Cautious completion is used for reading file names for files that must
                    727:      already exist.
                    728:      
                    729:    * "Permissive" completion is used when any string whatever is
                    730:      meaningful, and the list of completion alternatives is just a guide.
                    731:      For example, when `C-x C-f' reads the name of a file to visit, any
                    732:      file name is allowed, in case you want to create a file.  In
                    733:      permissive completion, RET takes the text in the minibuffer
                    734:      exactly as given, without completing it.
                    735: 
                    736:   The completion commands display a list of all possible completions in a
                    737: window whenever there is more than one possibility for the very next
                    738: character.  Also, typing `?' explicitly requests such a list.  The
                    739: list of completions counts as help text, so `C-M-v' typed in the
                    740: minibuffer scrolls the list.
                    741: 
                    742:   When completion is done on file names, certain file names are usually
                    743: ignored.  The variable `completion-ignored-extensions' contains a list of
                    744: strings; a file whose name ends in any of those strings is ignored as a
                    745: possible completion.  The standard value of this variable has several
                    746: elements including `".o"', `".elc"', `".dvi"' and `"~"'.  The effect is
                    747: that, for example, `foo' can complete to `foo.c' even though `foo.o' exists
                    748: as well.  If the only possible completions are files that end in "ignored"
                    749: strings, then they are not ignored.
                    750: 
                    751:   Normally, a completion command that finds the next character is undetermined
                    752: automatically displays a list of all possible completions.  If the variable
                    753: `completion-auto-help' is set to `nil', this does not happen,
                    754: and you must type `?' to display the possible completions.
                    755: 
                    756: 
                    757: File: emacs  Node: Repetition, Prev: Completion, Up: Minibuffer
                    758: 
                    759: Repeating Minibuffer Commands
                    760: =============================
                    761: 
                    762:   Every command that uses the minibuffer at least once is recorded on a
                    763: special history list, together with the values of the minibuffer arguments,
                    764: so that you can repeat the command easily.  In particular, every
                    765: use of `Meta-x' is recorded, since `M-x' uses the minibuffer to
                    766: read the command name.
                    767: 
                    768: `C-x ESC'     
                    769:      Re-execute a recent minibuffer command (`repeat-complex-command').
                    770: `M-p'     
                    771:      Within `C-x ESC', move to previous recorded command
                    772:      (`previous-complex-command').
                    773: `M-n'     
                    774:      Within `C-x ESC', move to the next (more recent) recorded
                    775:      command (`next-complex-command').
                    776: `M-x list-command-history'     
                    777:      Display the entire command history, showing all the commands
                    778:      `C-x ESC' can repeat, most recent first.
                    779: 
                    780:   `C-x ESC' is used to re-execute a recent minibuffer-using
                    781: command.  With no argument, it repeats the last such command.  A numeric
                    782: argument specifies which command to repeat; one means the last one, and
                    783: larger numbers specify earlier ones.
                    784: 
                    785:   `C-x ESC' works by turning the previous command into a Lisp
                    786: expression and then entering a minibuffer initialized with the text for
                    787: that expression.  If you type just RET, the command is repeated as
                    788: before.  You can also change the command by editing the Lisp expression.
                    789: Whatever expression you finally submit is what will be executed.  The
                    790: repeated command is added to the front of the command history unless it is
                    791: identical to the most recently executed command already there.
                    792: 
                    793:   Even if you don't understand Lisp syntax, it will probably be obvious
                    794: which command is displayed for repetition.  If you do not change the text,
                    795: you can be sure it will repeat exactly as before.
                    796: 
                    797:   Once inside the minibuffer for `C-x ESC', if the command shown
                    798: to you is not the one you want to repeat, you can move around the list of
                    799: previous commands using `M-n' and `M-p'.  `M-p' replaces the
                    800: contents of the minibuffer with the next earlier recorded command, and
                    801: `M-n' replaces them with the next later command.  After finding the
                    802: desired previous command, you can edit its expression as usual and then
                    803: resubmit it by typing RET as usual.  Any editing you have done on the
                    804: command to be repeated is lost if you use `M-n' or `M-p'.
                    805: 
                    806:   `M-p' is more useful than `M-n', since more often you will
                    807: initially request to repeat the most recent command and then decide to
                    808: repeat an older one instead.  These keys are specially defined within
                    809: `C-x ESC' to run the commands `previous-complex-command' and
                    810: `next-complex-command'.
                    811: 
                    812:   The list of previous minibuffer-using commands is stored as a Lisp list
                    813: in the variable `command-history'.  Each element is a Lisp expression
                    814: which describes one command and its arguments.  Lisp programs can reexecute
                    815: a command by feeding the corresponding `command-history' element to
                    816: `eval'.
                    817: 
                    818: 
                    819: File: emacs  Node: M-x, Prev: Minibuffer, Up: Top, Next: Help
                    820: 
                    821: Running Commands by Name
                    822: ************************
                    823: 
                    824:   The Emacs commands that are used often or that must be quick to type are
                    825: bound to keys---short sequences of characters---for convenient use.  Other
                    826: Emacs commands that do not need to be brief are not bound to keys; to run
                    827: them, you must refer to them by name.
                    828: 
                    829:   A command name is, by convention, made up of one or more words, separated
                    830: by hyphens; for example, `auto-fill-mode' or `manual-entry'.  The
                    831: use of English words makes the command name easier to remember than a key
                    832: made up of obscure characters, even though it is more characters to type.
                    833: Any command can be run by name, even if it is also runnable by keys.
                    834: 
                    835:   The way to run a command by name is to start with `M-x', type the
                    836: command name, and finish it with RET.  `M-x' uses the minibuffer
                    837: to read the command name.  RET exits the minibuffer and runs the
                    838: command.
                    839: 
                    840:   Emacs uses the minibuffer for reading input for many different purposes;
                    841: on this occasion, the string `M-x' is displayed at the beginning of
                    842: the minibuffer as a "prompt" to remind you that your input should be
                    843: the name of a command to be run.  *Note Minibuffer::, for full information
                    844: on the features of the minibuffer.
                    845: 
                    846:   You can use completion to enter the command name.  For example, the
                    847: command `forward-char' can be invoked by name by typing
                    848: 
                    849:      M-x forward-char RET
                    850:      
                    851: or     
                    852:      
                    853:      M-x fo TAB c RET
                    854: 
                    855: Note that `forward-char' is the same command that you invoke with
                    856: the key `C-f'.  Any command (interactively callable function) defined
                    857: in Emacs can be called by its name using `M-x' whether or not any
                    858: keys are bound to it.
                    859: 
                    860:   If you type `C-g' while the command name is being read, you cancel
                    861: the `M-x' command and get out of the minibuffer, ending up at top level.
                    862: 
                    863:   To pass a numeric argument to the command you are invoking with
                    864: `M-x', specify the numeric argument before the `M-x'.  `M-x'
                    865: passes the argument along to the function which it calls.  The argument
                    866: value appears in the prompt while the command name is being read.
                    867: 
                    868:   Normally, when describing a command that is run by name, we omit the
                    869: RET that is needed to terminate the name.  Thus we might speak of
                    870: `M-x auto-fill-mode' rather than `M-x auto-fill-mode RET'.
                    871: We mention the RET only when there is a need to emphasize its
                    872: presence, such as when describing a sequence of input that contains a
                    873: command name and arguments that follow it.
                    874: 
                    875:   `M-x' is defined to run the command `execute-extended-command',
                    876: which is responsible for reading the name of another command and invoking
                    877: it.
                    878: 
                    879: 
                    880: File: emacs  Node: Help, Prev: M-x, Up: Top, Next: Mark
                    881: 
                    882: Help
                    883: ****
                    884: 
                    885:   Emacs provides extensive help features which revolve around a single
                    886: character, `C-h'.  `C-h' is a prefix key that is used only for
                    887: documentation-printing commands.  The characters that you can type after
                    888: `C-h' are called "help options".  One help option is `C-h';
                    889: that is how you ask for help about using `C-h'.
                    890: 
                    891:   `C-h C-h' prints a list of the possible help options, and then asks
                    892: you to go ahead and type the option.  It prompts with a string
                    893: 
                    894:      A, B, C, F, I, K, L, M, N, S, T, V, W, C-c, C-d, C-n, C-w or C-h for more help: 
                    895: 
                    896: and you should type one of those characters.
                    897: 
                    898:   Typing a third `C-h' displays a description of what the options mean;
                    899: it still waits for you to type an option.  To cancel, type `C-g'.
                    900: 
                    901:   Here is a summary of the defined help commands.
                    902: 
                    903: `C-h a STRING RET'     
                    904:      Display list of commands whose names contain STRING
                    905:      (`command-apropos').
                    906: `C-h b'     
                    907:      Display a table of all key bindings in effect now; local bindings of
                    908:      the current major mode first, followed by all global bindings
                    909:      (`describe-bindings').
                    910: `C-h c KEY'     
                    911:      Print the name of the command that KEY runs (`describe-key-briefly').
                    912:      `c' is for `character'.  For more extensive information on KEY,
                    913:      use `C-h k'.
                    914: `C-h f FUNCTION RET'     
                    915:      Display documentation on the Lisp function named FUNCTION
                    916:      (`describe-function').  Note that commands are Lisp functions, so
                    917:      a command name may be used.
                    918: `C-h i'     
                    919:      Run Info, the program for browsing documentation files (`info').
                    920:      The complete Emacs manual is available on-line in Info.
                    921: `C-h k KEY'     
                    922:      Display name and documentation of the command KEY runs (`describe-key').
                    923: `C-h l'     
                    924:      Display a description of the last 100 characters you typed
                    925:      (`view-lossage').
                    926: `C-h m'     
                    927:      Display documentation of the current major mode (`describe-mode').
                    928: `C-h n'     
                    929:      Display documentation of Emacs changes, most recent first
                    930:      (`view-emacs-news').
                    931: `C-h s'     
                    932:      Display current contents of the syntax table, plus an explanation of
                    933:      what they mean (`describe-syntax').
                    934: `C-h t'     
                    935:      Display the Emacs tutorial (`help-with-tutorial').
                    936: `C-h v VAR RET'     
                    937:      Display the documentation of the Lisp variable VAR
                    938:      (`describe-variable').
                    939: `C-h w COMMAND RET'     
                    940:      Print which keys run the command named COMMAND (`where-is').
                    941: 
                    942: 
                    943: Documentation for a Key
                    944: =======================
                    945: 
                    946:   The most basic `C-h' options are `C-h c' (`describe-key-briefly') and
                    947: `C-h k' (`describe-key').  `C-h c KEY' prints in the echo area the name of
                    948: the command that KEY is bound to.  For example, `C-h c C-f' prints
                    949: `forward-char'.  Since command names are chosen to describe what the
                    950: command does, this is a good way to get a very brief description of what
                    951: KEY does.
                    952: 
                    953:   `C-h k KEY' is similar but gives more information.  It displays
                    954: the documentation string of the command KEY is bound to as well as
                    955: its name.  This is too big for the echo area, so a window is used for the
                    956: display.
                    957: 
                    958: 
                    959: Help by Command or Variable Name
                    960: ================================
                    961: 
                    962:   `C-h f' (`describe-function') reads the name of a Lisp function
                    963: using the minibuffer, then displays that function's documentation string
                    964: in a window.  Since commands are Lisp functions, you can use this to get
                    965: the documentation of a command that is known by name.  For example,
                    966: 
                    967:      C-h f auto-fill-mode RET
                    968: 
                    969: displays the documentation of `auto-fill-mode'.  This is the only
                    970: way to see the documentation of a command that is not bound to any key
                    971: (one which you would normally call using `M-x').
                    972: 
                    973:   `C-h f' is also useful for Lisp functions that you are planning to
                    974: use in a Lisp program.  For example, if you have just written the code
                    975: `(make-vector len)' and want to be sure that you are using
                    976: `make-vector' properly, type `C-h f make-vector RET'.  Because
                    977: `C-h f' allows all function names, not just command names, you may find
                    978: that some of your favorite abbreviations that work in `M-x' don't work
                    979: in `C-h f'.  An abbreviation may be unique among command names yet fail
                    980: to be unique when other function names are allowed.
                    981: 
                    982:   The function name for `C-h f' to describe has a default which is
                    983: used if you type RET leaving the minibuffer empty.  The default is
                    984: the function called by the innermost Lisp expression in the buffer around
                    985: point, provided that is a valid, defined Lisp function name.  For
                    986: example, if point is located following the text `(make-vector (car
                    987: x)', the innermost list containing point is the one that starts with
                    988: `(make-vector', so the default is to describe the function
                    989: `make-vector'.
                    990: 
                    991:   `C-h f' is often useful just to verify that you have the right
                    992: spelling for the function name.  If `C-h f' mentions a default in the
                    993: prompt, you have typed the name of a defined Lisp function.  If that tells
                    994: you what you want to know, just type `C-g' to cancel the `C-h f'
                    995: command and go on editing.
                    996: 
                    997:   `C-h w COMMAND RET' tells you what keys are bound to COMMAND.  It prints
                    998: a list of the keys in the echo area.  Alternatively, it says that the
                    999: command is not on any keys, which implies that you must use `M-x' to call
                   1000: it.
                   1001: 
                   1002:   `C-h v' (`describe-variable') is like `C-h f' but describes Lisp
                   1003: variables instead of Lisp functions.  Its default is the Lisp symbol around
                   1004: or before point, but only if that is the name of a known Lisp variable.
                   1005: *Note Variables::.
                   1006: 
                   1007: 
                   1008: Apropos
                   1009: =======
                   1010: 
                   1011:   A more sophisticated sort of question to ask is, "What are the commands
                   1012: for working with files?"  For this, type `C-h a file RET', which displays a
                   1013: list of all command names that contain `file', such as `copy-file',
                   1014: `find-file', and so on.  With each command name appears a brief description
                   1015: of how to use the command, and what keys you can currently invoke it with.
                   1016: For example, it would say that you can invoke `find-file' by typing `C-x
                   1017: C-f'.  The `a' in `C-h a' stands for `Apropos'; `C-h a' runs the Lisp
                   1018: function `command-apropos'.
                   1019: 
                   1020:   Because `C-h a' looks only for functions whose names contain the
                   1021: string which you specify, you must use ingenuity in choosing the string.
                   1022: If you are looking for commands for killing backwards and `C-h a
                   1023: kill-backwards RET' doesn't reveal any, don't give up.  Try just
                   1024: `kill', or just `backwards', or just `back'.  Be persistent.
                   1025: Pretend you are playing Adventure.  Also note that you can use a
                   1026: regular expression as the argument (*Note Regexps::).
                   1027: 
                   1028:   Here is a set of arguments to give to `C-h a' that covers many
                   1029: classes of Emacs commands, since there are strong conventions for naming
                   1030: the standard Emacs commands.  By giving you a feel for the naming
                   1031: conventions, this set should also serve to aid you in developing a
                   1032: technique for picking `apropos' strings.
                   1033: 
                   1034:      char, line, word, sentence, paragraph, region, page, sexp, list, defun,
                   1035:      buffer, screen, window, file, dir, register, mode,
                   1036:      beginning, end, forward, backward, next, previous, up, down, search, goto,
                   1037:      kill, delete, mark, insert, yank, fill, indent, case,
                   1038:      change, set, what, list, find, view, describe.
                   1039: 
                   1040:   To list all Lisp symbols that contain a match for a regexp, not just
                   1041: the ones that are defined as commands, use the command `M-x apropos'
                   1042: instead of `C-h a'.
                   1043: 
                   1044: 
                   1045: Other Help Commands
                   1046: ===================
                   1047: 
                   1048:   `C-h i' (`info') runs the Info program, which is used for
                   1049: browsing through structured documentation files.  The entire Emacs manual
                   1050: is available within Info.  Eventually all the documentation of the GNU
                   1051: system will be available.  Type `h' after entering Info to run
                   1052: a tutorial on using Info.
                   1053: 
                   1054:   If something surprising happens, and you are not sure what commands you
                   1055: typed, use `C-h l' (`view-lossage').  `C-h l' prints the last
                   1056: 100 command characters you typed in.  If you see commands that you don't
                   1057: know, you can use `C-h c' to find out what they do.
                   1058: 
                   1059:   Emacs has several major modes, each of which redefines a few keys and
                   1060: makes a few other changes in how editing works.  `C-h m' (`describe-mode')
                   1061: prints documentation on the current major mode, which normally describes
                   1062: all the commands that are changed in this mode.
                   1063: 
                   1064:   `C-h b' (`describe-bindings') and `C-h s' (`describe-syntax') present
                   1065: other information about the current Emacs mode.  `C-h b' displays a list of
                   1066: all the key bindings now in effect; the local bindings of the current major
                   1067: mode first, followed by the global bindings (*Note Key Bindings::).  `C-h
                   1068: s' displays the contents of the syntax table, with explanations of each
                   1069: character's syntax (*Note Syntax::).
                   1070: 
                   1071:   The other `C-h' options display various files of useful information.
                   1072: `C-h C-w' displays the full details on the complete absence of warranty for
                   1073: GNU Emacs.  `C-h n' (`view-emacs-news') displays the file `emacs/etc/NEWS',
                   1074: which contains documentation on Emacs changes arranged chronologically.
                   1075: `C-h t' (`help-with-tutorial') displays the learn-by-doing Emacs tutorial.
                   1076: `C-h C-c' (`describe-copying') displays the file `emacs/etc/COPYING', which
                   1077: tells you the conditions you must obey in distributing copies of Emacs.
                   1078: `C-h C-d' (`describe-distribution') displays the file `emacs/etc/DISTRIB',
                   1079: which tells you how you can order a copy of the latest version of Emacs.
                   1080: 
                   1081: 
                   1082: File: emacs  Node: Mark, Prev: Help, Up: Top, Next: Killing
                   1083: 
                   1084: The Mark and the Region
                   1085: ***********************
                   1086: 
                   1087:   There are many Emacs commands which operate on an arbitrary contiguous
                   1088: part of the current buffer.  To specify the text for such a command to
                   1089: operate on, you set "the mark" at one end of it, and move point to the
                   1090: other end.  The text between point and the mark is called "the region".
                   1091: You can move point or the mark to adjust the boundaries of the region.  It
                   1092: doesn't matter which one is set first chronologically, or which one comes
                   1093: earlier in the text.
                   1094: 
                   1095:   Once the mark has been set, it remains until it is set again at another
                   1096: place.  The mark remains fixed with respect to the preceding character if
                   1097: text is inserted or deleted in the buffer.  Each Emacs buffer has its own
                   1098: mark, so that when you return to a buffer that had been selected
                   1099: previously, it has the same mark it had before.
                   1100: 
                   1101:   Many commands that insert text, such as `C-y' (`yank') and
                   1102: `M-x insert-buffer', position the mark at one end of the inserted
                   1103: text---the opposite end from where point is positioned, so that the region
                   1104: contains the text just inserted.
                   1105: 
                   1106:   Aside from delimiting the region, the mark is also useful for remembering
                   1107: a spot that you may want to go back to.  To make this feature more useful,
                   1108: Emacs remembers 16 previous locations of the mark, in the `mark ring'.
                   1109: 
                   1110: * Menu:
                   1111: 
                   1112: * Setting Mark::       Commands to set the mark.
                   1113: * Using Region::       Summary of ways to operate on contents of the region.
                   1114: * Marking Objects::    Commands to put region around textual units.
                   1115: * Mark Ring::   Previous mark positions saved so you can go back there.
                   1116: 
                   1117: 
                   1118: File: emacs  Node: Setting Mark, Prev: Mark, Up: Mark, Next: Using Region
                   1119: 
                   1120: Setting the Mark
                   1121: ================
                   1122: 
                   1123:   Here are some commands for setting the mark:
                   1124: 
                   1125: `C-SPC'     
                   1126:      Set the mark where point is (`set-mark-command').
                   1127: `C-@'     
                   1128:      The same.
                   1129: `C-x C-x'     
                   1130:      Interchange mark and point (`exchange-point-and-mark').
                   1131: 
                   1132:   For example, if you wish to convert part of the buffer to all upper-case,
                   1133: you can use the `C-x C-u' (`upcase-region') command, which operates
                   1134: on the text in the region.  You can first go to the beginning of the text
                   1135: to be capitalized, type `C-SPC' to put the mark there, move to
                   1136: the end, and then type `C-x C-u'.  Or, you can set the mark at the end
                   1137: of the text, move to the beginning, and then type `C-x C-u'.  Most
                   1138: commands that operate on the text in the region have the word `region'
                   1139: in their names.
                   1140: 
                   1141:   The most common way to set the mark is with the `C-SPC' command
                   1142: (`set-mark-command').  This sets the mark where point is.  Then you
                   1143: can move point away, leaving the mark behind.  It is actually incorrect to
                   1144: speak of the character `C-SPC'; there is no such character.  When
                   1145: you type SPC while holding down CTRL, what you get on most
                   1146: terminals is the character `C-@'.  This is the key actually bound to
                   1147: `set-mark-command'.  But unless you are unlucky enough to have a
                   1148: terminal where typing `C-SPC' does not produce `C-@', you
                   1149: might as well think of this character as `C-SPC'.
                   1150: 
                   1151:   Since terminals have only one cursor, there is no way for Emacs to show
                   1152: you where the mark is located.  You have to remember.  The usual solution
                   1153: to this problem is to set the mark and then use it soon, before you forget
                   1154: where it is.  But you can see where the mark is with the command `C-x
                   1155: C-x' (`exchange-point-and-mark') which puts the mark where point was and
                   1156: point where the mark was.  The extent of the region is unchanged, but the
                   1157: cursor and point are now at the previous location of the mark.
                   1158: 
                   1159:   `C-x C-x' is also useful when you are satisfied with the location of
                   1160: point but want to move the mark; do `C-x C-x' to put point there and
                   1161: then you can move it.  A second use of `C-x C-x', if necessary, puts
                   1162: the mark at the new location with point back at its original location.
                   1163: 
                   1164: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.