Annotation of GNUtools/emacs/info/emacs-3, revision 1.1.1.1

1.1       root        1: This is Info file ../info/emacs, produced by Makeinfo-1.49 from the
                      2: input file emacs.texi.
                      3: 
                      4:    This file documents the GNU Emacs editor.
                      5: 
                      6:    Copyright (C) 1985, 1986, 1988, 1992 Richard M. Stallman.
                      7: 
                      8:    Permission is granted to make and distribute verbatim copies of this
                      9: manual provided the copyright notice and this permission notice are
                     10: preserved on all copies.
                     11: 
                     12:    Permission is granted to copy and distribute modified versions of
                     13: this manual under the conditions for verbatim copying, provided also
                     14: that the sections entitled "The GNU Manifesto", "Distribution" and "GNU
                     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
                     20: manual into another language, under the above conditions for modified
                     21: versions, except that the sections entitled "The GNU Manifesto",
                     22: "Distribution" and "GNU General Public License" may be included in a
                     23: translation approved by the author instead of in the original English.
                     24: 
                     25: 
                     26: File: emacs,  Node: Repetition,  Prev: Completion,  Up: Minibuffer
                     27: 
                     28: Repeating Minibuffer Commands
                     29: =============================
                     30: 
                     31:    Every command that uses the minibuffer at least once is recorded on a
                     32: special history list, together with the values of the minibuffer
                     33: arguments, so that you can repeat the command easily.  In particular,
                     34: every use of `Meta-x' is recorded, since `M-x' uses the minibuffer to
                     35: read the command name.
                     36: 
                     37: `C-x ESC'
                     38:      Re-execute a recent minibuffer command `repeat-complex-command').
                     39: 
                     40: `M-p'
                     41:      Within `C-x ESC', move to the previous recorded command
                     42:      (`previous-complex-command').
                     43: 
                     44: `M-n'
                     45:      Within `C-x ESC', move to the next (more recent) recorded command
                     46:      (`next-complex-command').
                     47: 
                     48: `M-x list-command-history'
                     49:      Display the entire command history, showing all the commands `C-x
                     50:      ESC' can repeat, most recent first.
                     51: 
                     52:    `C-x ESC' is used to re-execute a recent minibuffer-using command. 
                     53: With no argument, it repeats the last such command.  A numeric argument
                     54: specifies which command to repeat; 1 means the last one, and larger
                     55: numbers specify earlier ones.
                     56: 
                     57:    `C-x ESC' works by turning the previous command into a Lisp
                     58: expression and then entering a minibuffer initialized with the text for
                     59: that expression.  If you type just RET, the command is repeated as
                     60: before.  You can also change the command by editing the Lisp expression.
                     61: Whatever expression you finally submit is what will be executed.  The
                     62: repeated command is added to the front of the command history unless it
                     63: is identical to the most recently executed command already there.
                     64: 
                     65:    Even if you don't understand Lisp syntax, it will probably be obvious
                     66: which command is displayed for repetition.  If you do not change the
                     67: text, you can be sure it will repeat exactly as before.
                     68: 
                     69:    Once inside the minibuffer for `C-x ESC', if the command shown to
                     70: you is not the one you want to repeat, you can move around the list of
                     71: previous commands using `M-n' and `M-p'.  `M-p' replaces the contents
                     72: of the minibuffer with the next earlier recorded command, and `M-n'
                     73: replaces them with the next later command.  After finding the desired
                     74: previous command, you can edit its expression as usual and then
                     75: resubmit it by typing RET as usual.  Any editing you have done on the
                     76: command to be repeated is lost if you use `M-n' or `M-p'.
                     77: 
                     78:    `M-p' is more useful than `M-n', since more often you will initially
                     79: request to repeat the most recent command and then decide to repeat an
                     80: older one instead.  These keys are specially defined within `C-x ESC'
                     81: to run the commands `previous-complex-command' and
                     82: `next-complex-command'.
                     83: 
                     84:    The list of previous minibuffer-using commands is stored as a Lisp
                     85: list in the variable `command-history'.  Each element is a Lisp
                     86: expression which describes one command and its arguments.  Lisp
                     87: programs can reexecute a command by feeding the corresponding
                     88: `command-history' element to `eval'.
                     89: 
                     90: 
                     91: File: emacs,  Node: M-x,  Next: Help,  Prev: Minibuffer,  Up: Top
                     92: 
                     93: Running Commands by Name
                     94: ************************
                     95: 
                     96:    The Emacs commands that are used often or that must be quick to type
                     97: are bound to keys--short sequences of characters--for convenient use. 
                     98: Other Emacs commands that do not need to be brief are not bound to
                     99: keys; to run them, you must refer to them by name.
                    100: 
                    101:    A command name is, by convention, made up of one or more words,
                    102: separated by hyphens; for example, `auto-fill-mode' or `manual-entry'. 
                    103: The use of English words makes the command name easier to remember than
                    104: a key made up of obscure characters, even though it is more characters
                    105: to type. Any command can be run by name, even if it is also runnable by
                    106: keys.
                    107: 
                    108:    The way to run a command by name is to start with `M-x', type the
                    109: command name, and finish it with RET.  `M-x' uses the minibuffer to
                    110: read the command name.  RET exits the minibuffer and runs the command.
                    111: 
                    112:    Emacs uses the minibuffer for reading input for many different
                    113: purposes; on this occasion, the string `M-x' is displayed at the
                    114: beginning of the minibuffer as a "prompt" to remind you that your input
                    115: should be the name of a command to be run.  *Note Minibuffer::, for
                    116: full information on the features of the minibuffer.
                    117: 
                    118:    You can use completion to enter the command name.  For example, the
                    119: command `forward-char' can be invoked by name by typing
                    120: 
                    121:      M-x forward-char RET
                    122: or
                    123: 
                    124:      M-x fo TAB c RET
                    125: 
                    126: Note that `forward-char' is the same command that you invoke with the
                    127: key `C-f'.  Any command (interactively callable function) defined in
                    128: Emacs can be called by its name using `M-x' whether or not any keys are
                    129: bound to it.
                    130: 
                    131:    If you type `C-g' while the command name is being read, you cancel
                    132: the `M-x' command and get out of the minibuffer, ending up at top level.
                    133: 
                    134:    To pass a numeric argument to the command you are invoking with
                    135: `M-x', specify the numeric argument before the `M-x'.  `M-x' passes the
                    136: argument along to the function which it calls.  The argument value
                    137: appears in the prompt while the command name is being read.
                    138: 
                    139:    Normally, when describing a command that is run by name, we omit the
                    140: RET that is needed to terminate the name.  Thus we might speak of `M-x
                    141: auto-fill-mode' rather than `M-x auto-fill-mode RET'. We mention the
                    142: RET only when there is a need to emphasize its presence, such as when
                    143: describing a sequence of input that contains a command name and
                    144: arguments that follow it.
                    145: 
                    146:    `M-x' is defined to run the command `execute-extended-command',
                    147: which is responsible for reading the name of another command and
                    148: invoking it.
                    149: 
                    150: 
                    151: File: emacs,  Node: Help,  Next: Mark,  Prev: M-x,  Up: Top
                    152: 
                    153: Help
                    154: ****
                    155: 
                    156:    Emacs provides extensive help features which revolve around a single
                    157: character, `C-h'.  `C-h' is a prefix key that is used only for
                    158: documentation-printing commands.  The characters that you can type after
                    159: `C-h' are called "help options".  One help option is `C-h'; that is how
                    160: you ask for help about using `C-h'.
                    161: 
                    162:    `C-h C-h' prints a list of the possible help options, and then asks
                    163: you to go ahead and type the option.  It prompts with a string
                    164: 
                    165:      A B C F I K L M N S T V W C-c C-d C-n C-w.  Type C-h again for more help:
                    166: 
                    167: and you should type one of those characters.
                    168: 
                    169:    Typing a third `C-h' displays a description of what the options mean;
                    170: it still waits for you to type an option.  To cancel, type `C-g'.
                    171: 
                    172:    Here is a summary of the defined help commands.
                    173: 
                    174: `C-h a STRING RET'
                    175:      Display a list of commands whose names contain STRING
                    176:      (`command-apropos').
                    177: 
                    178: `C-h b'
                    179:      Display a table of all key bindings in effect now; local bindings
                    180:      of the current major mode first, followed by all global bindings
                    181:      (`describe-bindings').
                    182: 
                    183: `C-h c KEY'
                    184:      Print the name of the command that KEY runs
                    185:      (`describe-key-briefly'). `c' is for `character'.  For more
                    186:      extensive information on KEY, use `C-h k'.
                    187: 
                    188: `C-h f FUNCTION RET'
                    189:      Display documentation on the Lisp function named FUNCTION
                    190:      (`describe-function').  Note that commands are Lisp functions, so
                    191:      a command name may be used.
                    192: 
                    193: `C-h i'
                    194:      Run Info, the program for browsing documentation files (`info').
                    195:      The complete Emacs manual is available on-line in Info.
                    196: 
                    197: `C-h k KEY'
                    198:      Display name and documentation of the command KEY runs
                    199:      (`describe-key').
                    200: 
                    201: `C-h l'
                    202:      Display a description of the last 100 characters you typed
                    203:      (`view-lossage').
                    204: 
                    205: `C-h m'
                    206:      Display documentation of the current major mode (`describe-mode').
                    207: 
                    208: `C-h n'
                    209:      Display documentation of Emacs changes, most recent first
                    210:      (`view-emacs-news').
                    211: 
                    212: `C-h s'
                    213:      Display current contents of the syntax table, plus an explanation
                    214:      of what they mean (`describe-syntax').
                    215: 
                    216: `C-h t'
                    217:      Display the Emacs tutorial (`help-with-tutorial').
                    218: 
                    219: `C-h v VAR RET'
                    220:      Display the documentation of the Lisp variable VAR
                    221:      (`describe-variable').
                    222: 
                    223: `C-h w COMMAND RET'
                    224:      Print which keys run the command named COMMAND (`where-is').
                    225: 
                    226: Documentation for a Key
                    227: =======================
                    228: 
                    229:    The most basic `C-h' options are `C-h c' (`describe-key-briefly')
                    230: and `C-h k' (`describe-key'). `C-h c KEY' prints in the echo area the
                    231: name of the command that KEY is bound to.  For example, `C-h c C-f'
                    232: prints `forward-char'.  Since command names are chosen to describe what
                    233: the command does, this is a good way to get a very brief description of
                    234: what KEY does.
                    235: 
                    236:    `C-h k KEY' is similar but gives more information.  It displays the
                    237: documentation string of the command KEY is bound to as well as its
                    238: name.  This is too big for the echo area, so a window is used for the
                    239: display.
                    240: 
                    241: Help by Command or Variable Name
                    242: ================================
                    243: 
                    244:    `C-h f' (`describe-function') reads the name of a Lisp function
                    245: using the minibuffer, then displays that function's documentation string
                    246: in a window.  Since commands are Lisp functions, you can use this to get
                    247: the documentation of a command that is known by name.  For example,
                    248: 
                    249:      C-h f auto-fill-mode RET
                    250: 
                    251: displays the documentation of `auto-fill-mode'.  This is the only way
                    252: to see the documentation of a command that is not bound to any key (one
                    253: which you would normally call using `M-x').
                    254: 
                    255:    `C-h f' is also useful for Lisp functions that you are planning to
                    256: use in a Lisp program.  For example, if you have just written the code
                    257: `(make-vector len)' and want to be sure that you are using
                    258: `make-vector' properly, type `C-h f make-vector RET'.  Because `C-h f'
                    259: allows all function names, not just command names, you may find that
                    260: some of your favorite abbreviations that work in `M-x' don't work in
                    261: `C-h f'.  An abbreviation may be unique among command names yet fail to
                    262: be unique when other function names are allowed.
                    263: 
                    264:    The function name for `C-h f' to describe has a default which is
                    265: used if you type RET leaving the minibuffer empty.  The default is the
                    266: function called by the innermost Lisp expression in the buffer around
                    267: point, provided that is a valid, defined Lisp function name.  For
                    268: example, if point is located following the text `(make-vector (car x)',
                    269: the innermost list containing point is the one that starts with
                    270: `(make-vector', so the default is to describe the function
                    271: `make-vector'.
                    272: 
                    273:    `C-h f' is often useful just to verify that you have the right
                    274: spelling for the function name.  If `C-h f' mentions a default in the
                    275: prompt, you have typed the name of a defined Lisp function.  If that
                    276: tells you what you want to know, just type `C-g' to cancel the `C-h f'
                    277: command and go on editing.
                    278: 
                    279:    `C-h w COMMAND RET' tells you what keys are bound to COMMAND.  It
                    280: prints a list of the keys in the echo area. Alternatively, it says that
                    281: the command is not on any keys, which implies that you must use `M-x'
                    282: to call it.
                    283: 
                    284:    `C-h v' (`describe-variable') is like `C-h f' but describes Lisp
                    285: variables instead of Lisp functions.  Its default is the Lisp symbol
                    286: around or before point, but only if that is the name of a known Lisp
                    287: variable.  *Note Variables::.
                    288: 
                    289: Apropos
                    290: =======
                    291: 
                    292:    A more sophisticated sort of question to ask is, "What are the
                    293: commands for working with files?"  For this, type `C-h a file RET',
                    294: which displays a list of all command names that contain `file', such as
                    295: `copy-file', `find-file', and so on.  With each command name appears a
                    296: brief description of how to use the command, and what keys you can
                    297: currently invoke it with.  For example, it would say that you can
                    298: invoke `find-file' by typing `C-x C-f'.  The `a' in `C-h a' stands for
                    299: `Apropos'; `C-h a' runs the Lisp function `command-apropos'.
                    300: 
                    301:    Because `C-h a' looks only for functions whose names contain the
                    302: string which you specify, you must use ingenuity in choosing the string.
                    303: If you are looking for commands for killing backwards and `C-h a
                    304: kill-backwards RET' doesn't reveal any, don't give up.  Try just
                    305: `kill', or just `backwards', or just `back'.  Be persistent. Pretend
                    306: you are playing Adventure.  Also note that you can use a regular
                    307: expression as the argument (*note Regexps::.).
                    308: 
                    309:    Here is a set of arguments to give to `C-h a' that covers many
                    310: classes of Emacs commands, since there are strong conventions for naming
                    311: the standard Emacs commands.  By giving you a feel for the naming
                    312: conventions, this set should also serve to aid you in developing a
                    313: technique for picking `apropos' strings.
                    314: 
                    315:      char, line, word, sentence, paragraph, region, page, sexp, list,
                    316:      defun, buffer, screen, window, file, dir, register, mode,
                    317:      beginning, end, forward, backward, next, previous, up, down,
                    318:      search, goto, kill, delete, mark, insert, yank, fill, indent, case,
                    319:      change, set, what, list, find, view, describe.
                    320: 
                    321:    To list all Lisp symbols that contain a match for a regexp, not just
                    322: the ones that are defined as commands, use the command `M-x apropos'
                    323: instead of `C-h a'.
                    324: 
                    325: Other Help Commands
                    326: ===================
                    327: 
                    328:    `C-h i' (`info') runs the Info program, which is used for browsing
                    329: through structured documentation files.  The entire Emacs manual is
                    330: available within Info.  Eventually all the documentation of the GNU
                    331: system will be available.  Type `h' after entering Info to run a
                    332: tutorial on using Info.
                    333: 
                    334:    If something surprising happens, and you are not sure what commands
                    335: you typed, use `C-h l' (`view-lossage').  `C-h l' prints the last 100
                    336: command characters you typed in.  If you see commands that you don't
                    337: know, you can use `C-h c' to find out what they do.
                    338: 
                    339:    Emacs has several major modes, each of which redefines a few keys and
                    340: makes a few other changes in how editing works.  `C-h m'
                    341: (`describe-mode') prints documentation on the current major mode, which
                    342: normally describes all the commands that are changed in this mode.
                    343: 
                    344:    `C-h b' (`describe-bindings') and `C-h s' (`describe-syntax')
                    345: present other information about the current Emacs mode.  `C-h b'
                    346: displays a list of all the key bindings now in effect; the local
                    347: bindings of the current major mode first, followed by the global
                    348: bindings (*note Key Bindings::.).  `C-h s' displays the contents of the
                    349: syntax table, with explanations of each character's syntax (*note
                    350: Syntax::.).
                    351: 
                    352:    The other `C-h' options display various files of useful information.
                    353:  `C-h C-w' displays the full details on the complete absence of
                    354: warranty for GNU Emacs.  `C-h n' (`view-emacs-news') displays the file
                    355: `emacs/etc/NEWS', which contains documentation on Emacs changes
                    356: arranged chronologically.  `C-h t' (`help-with-tutorial') displays the
                    357: learn-by-doing Emacs tutorial. `C-h C-c' (`describe-copying') displays
                    358: the file `emacs/etc/COPYING', which tells you the conditions you must
                    359: obey in distributing copies of Emacs.  `C-h C-d'
                    360: (`describe-distribution') displays another file named
                    361: `emacs/etc/DISTRIB', which tells you how you can order a copy of the
                    362: latest version of Emacs.
                    363: 
                    364: 
                    365: File: emacs,  Node: Mark,  Next: Killing,  Prev: Help,  Up: Top
                    366: 
                    367: The Mark and the Region
                    368: ***********************
                    369: 
                    370:    There are many Emacs commands which operate on an arbitrary
                    371: contiguous part of the current buffer.  To specify the text for such a
                    372: command to operate on, you set the "mark" at one end of it, and move
                    373: point to the other end.  The text between point and the mark is called
                    374: the "region". You can move point or the mark to adjust the boundaries
                    375: of the region.  It doesn't matter which one is set first
                    376: chronologically, or which one comes earlier in the text.
                    377: 
                    378:    Once the mark has been set, it remains until it is set again at
                    379: another place.  The mark remains fixed with respect to the preceding
                    380: character if text is inserted or deleted in the buffer.  Each Emacs
                    381: buffer has its own mark, so that when you return to a buffer that had
                    382: been selected previously, it has the same mark it had before.
                    383: 
                    384:    Many commands that insert text, such as `C-y' (`yank') and `M-x
                    385: insert-buffer', position the mark at one end of the inserted text--the
                    386: opposite end from where point is positioned, so that the region
                    387: contains the text just inserted.
                    388: 
                    389:    Aside from delimiting the region, the mark is also useful for
                    390: remembering a spot that you may want to go back to.  To make this
                    391: feature more useful, Emacs remembers 16 previous locations of the mark,
                    392: in the `mark ring'.
                    393: 
                    394: * Menu:
                    395: 
                    396: * Setting Mark::       Commands to set the mark.
                    397: * Using Region::       Summary of ways to operate on contents of the region.
                    398: * Marking Objects::    Commands to put region around textual units.
                    399: * Mark Ring::   Previous mark positions saved so you can go back there.
                    400: 
                    401: 
                    402: File: emacs,  Node: Setting Mark,  Next: Using Region,  Prev: Mark,  Up: Mark
                    403: 
                    404: Setting the Mark
                    405: ================
                    406: 
                    407:    Here are some commands for setting the mark:
                    408: 
                    409: `C-SPC'
                    410:      Set the mark where point is (`set-mark-command').
                    411: 
                    412: `C-@'
                    413:      The same.
                    414: 
                    415: `C-x C-x'
                    416:      Interchange mark and point (`exchange-point-and-mark').
                    417: 
                    418:    For example, if you wish to convert part of the buffer to all
                    419: upper-case, you can use the `C-x C-u' (`upcase-region') command, which
                    420: operates on the text in the region.  You can first go to the beginning
                    421: of the text to be capitalized, type `C-SPC' to put the mark there, move
                    422: to the end, and then type `C-x C-u'.  Or, you can set the mark at the
                    423: end of the text, move to the beginning, and then type `C-x C-u'.  Most
                    424: commands that operate on the text in the region have the word `region'
                    425: in their names.
                    426: 
                    427:    The most common way to set the mark is with the `C-SPC' command
                    428: (`set-mark-command').  This sets the mark where point is.  Then you can
                    429: move point away, leaving the mark behind.  It is actually incorrect to
                    430: speak of the character `C-SPC'; there is no such character.  When you
                    431: type SPC while holding down CTRL, what you get on most terminals is the
                    432: character `C-@'.  This is the key actually bound to `set-mark-command'.
                    433:  But unless you are unlucky enough to have a terminal where typing
                    434: `C-SPC' does not produce `C-@', you might as well think of this
                    435: character as `C-SPC'.
                    436: 
                    437:    Since terminals have only one cursor, there is no way for Emacs to
                    438: show you where the mark is located.  You have to remember.  The usual
                    439: solution to this problem is to set the mark and then use it soon,
                    440: before you forget where it is.  But you can see where the mark is with
                    441: the command `C-x C-x' (`exchange-point-and-mark') which puts the mark
                    442: where point was and point where the mark was.  The extent of the region
                    443: is unchanged, but the cursor and point are now at the previous location
                    444: of the mark.
                    445: 
                    446:    `C-x C-x' is also useful when you are satisfied with the location of
                    447: point but want to move the mark; do `C-x C-x' to put point there and
                    448: then you can move it.  A second use of `C-x C-x', if necessary, puts
                    449: the mark at the new location with point back at its original location.
                    450: 
                    451: 
                    452: File: emacs,  Node: Using Region,  Next: Marking Objects,  Prev: Setting Mark,  Up: Mark
                    453: 
                    454: Operating on the Region
                    455: =======================
                    456: 
                    457:    Once you have created an active region, you can do many things to
                    458: the text in it:
                    459:    * Kill it with `C-w' (*note Killing::.).
                    460: 
                    461:    * Save it in a register with `C-x x' (*note Registers::.).
                    462: 
                    463:    * Save it in a buffer or a file (*note Accumulating Text::.).
                    464: 
                    465:    * Convert case with `C-x C-l' or `C-x C-u'
                    466:      (*note Case::.).
                    467: 
                    468:    * Evaluate it as Lisp code with `M-x eval-region' (*note Lisp
                    469:      Eval::.).
                    470: 
                    471:    * Fill it as text with `M-g' (*note Filling::.).
                    472: 
                    473:    * Print hardcopy with `M-x print-region' (*note Hardcopy::.).
                    474: 
                    475:    * Indent it with `C-x TAB' or `C-M-\'
                    476:      (*note Indentation::.).
                    477: 
                    478: 
                    479: File: emacs,  Node: Marking Objects,  Next: Mark Ring,  Prev: Using Region,  Up: Mark
                    480: 
                    481: Commands to Mark Textual Objects
                    482: ================================
                    483: 
                    484:    There are commands for placing point and the mark around a textual
                    485: object such as a word, list, paragraph or page.
                    486: 
                    487: `M-@'
                    488:      Set mark after end of next word (`mark-word').  This command and
                    489:      the following one do not move point.
                    490: 
                    491: `C-M-@'
                    492:      Set mark after end of next Lisp expression (`mark-sexp').
                    493: 
                    494: `M-h'
                    495:      Put region around current paragraph (`mark-paragraph').
                    496: 
                    497: `C-M-h'
                    498:      Put region around current Lisp defun (`mark-defun').
                    499: 
                    500: `C-x h'
                    501:      Put region around entire buffer (`mark-whole-buffer').
                    502: 
                    503: `C-x C-p'
                    504:      Put region around current page (`mark-page').
                    505: 
                    506:    `M-@' (`mark-word') puts the mark at the end of the next word, while
                    507: `C-M-@' (`mark-sexp') puts it at the end of the next Lisp expression. 
                    508: These characters allow you to save a little typing or redisplay,
                    509: sometimes.
                    510: 
                    511:    Other commands set both point and mark, to delimit an object in the
                    512: buffer.  `M-h' (`mark-paragraph') moves point to the beginning of the
                    513: paragraph that surrounds or follows point, and puts the mark at the end
                    514: of that paragraph (*note Paragraphs::.).  `M-h' does all that's
                    515: necessary if you wish to indent, case-convert, or kill a whole
                    516: paragraph. `C-M-h' (`mark-defun') similarly puts point before and the
                    517: mark after the current or following defun (*note Defuns::.).  `C-x C-p'
                    518: (`mark-page') puts point before the current page (or the next or
                    519: previous, according to the argument), and mark at the end (*note
                    520: Pages::.). The mark goes after the terminating page delimiter (to
                    521: include it), while point goes after the preceding page delimiter (to
                    522: exclude it).  Finally, `C-x h' (`mark-whole-buffer') sets up the entire
                    523: buffer as the region, by putting point at the beginning and the mark at
                    524: the end.
                    525: 
                    526: 
                    527: File: emacs,  Node: Mark Ring,  Prev: Marking Objects,  Up: Mark
                    528: 
                    529: The Mark Ring
                    530: =============
                    531: 
                    532:    Aside from delimiting the region, the mark is also useful for
                    533: remembering a spot that you may want to go back to.  To make this
                    534: feature more useful, Emacs remembers 16 previous locations of the mark,
                    535: in the "mark ring". Most commands that set the mark push the old mark
                    536: onto this ring.  To return to a marked location, use `C-u C-SPC' (or
                    537: `C-u C-@'); this is the command `set-mark-command' given a numeric
                    538: argument.  It moves point to where the mark was, and restores the mark
                    539: from the ring of former marks.  So repeated use of this command moves
                    540: point to all of the old marks on the ring, one by one.  The marks you
                    541: see go to the end of the ring, so no marks are lost.
                    542: 
                    543:    Each buffer has its own mark ring.  All editing commands use the
                    544: current buffer's mark ring.  In particular, `C-u C-SPC' always stays in
                    545: the same buffer.
                    546: 
                    547:    Many commands that can move long distances, such as `M-<'
                    548: (`beginning-of-buffer'), start by setting the mark and saving the old
                    549: mark on the mark ring.  This is to make it easier for you to move back
                    550: later.  Searches do this except when they do not actually move point. 
                    551: You can tell when a command sets the mark because `Mark Set' is printed
                    552: in the echo area.
                    553: 
                    554:    Another way of remembering positions so you can go back to them is
                    555: with registers (*note RegPos::.).
                    556: 
                    557:    The variable `mark-ring-max' is the maximum number of entries to
                    558: keep in the mark ring.  If that many entries exist and another one is
                    559: pushed, the last one in the list is discarded.  Repeating `C-u C-SPC'
                    560: circulates through the limited number of entries that are currently in
                    561: the ring.
                    562: 
                    563:    The variable `mark-ring' holds the mark ring itself, as a list of
                    564: marker objects in the order most recent first.  This variable is local
                    565: in every buffer.
                    566: 
                    567: 
                    568: File: emacs,  Node: Killing,  Next: Yanking,  Prev: Mark,  Up: Top
                    569: 
                    570: Deletion and Killing
                    571: ====================
                    572: 
                    573:    Most commands which erase text from the buffer save it so that you
                    574: can get it back if you change your mind, or move or copy it to other
                    575: parts of the buffer.  These commands are known as "kill" commands.  The
                    576: rest of the commands that erase text do not save it; they are known as
                    577: "delete" commands.  (This distinction is made only for erasure of text
                    578: in the buffer.)
                    579: 
                    580:    The delete commands include `C-d' (`delete-char') and DEL
                    581: (`delete-backward-char'), which delete only one character at a time,
                    582: and those commands that delete only spaces or newlines.  Commands that
                    583: can destroy significant amounts of nontrivial data generally kill. The
                    584: commands' names and individual descriptions use the words `kill' and
                    585: `delete' to say which they do.  If you do a kill or delete command by
                    586: mistake, you can use the `C-x u' (`undo') command to undo it (*note
                    587: Undo::.).
                    588: 
                    589: Deletion
                    590: --------
                    591: 
                    592: `C-d'
                    593:      Delete next character (`delete-char').
                    594: 
                    595: `DEL'
                    596:      Delete previous character (`delete-backward-char').
                    597: 
                    598: `M-\'
                    599:      Delete spaces and tabs around point (`delete-horizontal-space').
                    600: 
                    601: `M-SPC'
                    602:      Delete spaces and tabs around point, leaving one space
                    603:      (`just-one-space').
                    604: 
                    605: `C-x C-o'
                    606:      Delete blank lines around the current line (`delete-blank-lines').
                    607: 
                    608: `M-^'
                    609:      Join two lines by deleting the intervening newline, and any
                    610:      indentation following it (`delete-indentation').
                    611: 
                    612:    The most basic delete commands are `C-d' (`delete-char') and DEL
                    613: (`delete-backward-char').  `C-d' deletes the character after point, the
                    614: one the cursor is "on top of".  Point doesn't move. DEL deletes the
                    615: character before the cursor, and moves point back. Newlines can be
                    616: deleted like any other characters in the buffer; deleting a newline
                    617: joins two lines.  Actually, `C-d' and DEL aren't always delete
                    618: commands; if given an argument, they kill instead, since they can erase
                    619: more than one character this way.
                    620: 
                    621:    The other delete commands are those which delete only formatting
                    622: characters: spaces, tabs and newlines.  `M-\'
                    623: (`delete-horizontal-space') deletes all the spaces and tab characters
                    624: before and after point. `M-SPC' (`just-one-space') does likewise but
                    625: leaves a single space after point, regardless of the number of spaces
                    626: that existed previously (even zero).
                    627: 
                    628:    `C-x C-o' (`delete-blank-lines') deletes all blank lines after the
                    629: current line, and if the current line is blank deletes all blank lines
                    630: preceding the current line as well (leaving one blank line, the current
                    631: line).  `M-^' (`delete-indentation') joins the current line and the
                    632: previous line, or the current line and the next line if given an
                    633: argument, by deleting a newline and all surrounding spaces, possibly
                    634: leaving a single space.  *Note M-^: Indentation.
                    635: 
                    636: Killing by Lines
                    637: ----------------
                    638: 
                    639: `C-k'
                    640:      Kill rest of line or one or more lines (`kill-line').
                    641: 
                    642:    The simplest kill command is `C-k'.  If given at the beginning of a
                    643: line, it kills all the text on the line, leaving it blank.  If given on
                    644: a blank line, the blank line disappears.  As a consequence, if you go
                    645: to the front of a non-blank line and type `C-k' twice, the line
                    646: disappears completely.
                    647: 
                    648:    More generally, `C-k' kills from point up to the end of the line,
                    649: unless it is at the end of a line.  In that case it kills the newline
                    650: following the line, thus merging the next line into the current one.
                    651: Invisible spaces and tabs at the end of the line are ignored when
                    652: deciding which case applies, so if point appears to be at the end of
                    653: the line, you can be sure the newline will be killed.
                    654: 
                    655:    If `C-k' is given a positive argument, it kills that many lines and
                    656: the newlines that follow them (however, text on the current line before
                    657: point is spared).  With a negative argument, it kills back to a number
                    658: of line beginnings.  An argument of -2 means kill back to the second
                    659: line beginning.  If point is at the beginning of a line, that line
                    660: beginning doesn't count, so `C-u - 2 C-k' with point at the front of a
                    661: line kills the two previous lines.
                    662: 
                    663:    `C-k' with an argument of zero kills all the text before point on the
                    664: current line.
                    665: 
                    666: Other Kill Commands
                    667: -------------------
                    668: 
                    669: `C-w'
                    670:      Kill region (from point to the mark) (`kill-region'). *Note
                    671:      Words::.
                    672: 
                    673: `M-d'
                    674:      Kill word (`kill-word').
                    675: 
                    676: `M-DEL'
                    677:      Kill word backwards (`backward-kill-word').
                    678: 
                    679: `C-x DEL'
                    680:      Kill back to beginning of sentence (`backward-kill-sentence').
                    681:      *Note Sentences::.
                    682: 
                    683: `M-k'
                    684:      Kill to end of sentence (`kill-sentence').
                    685: 
                    686: `C-M-k'
                    687:      Kill sexp (`kill-sexp').  *Note Lists::.
                    688: 
                    689: `M-z CHAR'
                    690:      Kill up to next occurrence of CHAR (`zap-to-char').
                    691: 
                    692:    A kill command which is very general is `C-w' (`kill-region'), which
                    693: kills everything between point and the mark.  With this command, you
                    694: can kill any contiguous sequence of characters, if you first set the
                    695: mark at one end of them and go to the other end.
                    696: 
                    697:    A convenient way of killing is combined with searching: `M-z'
                    698: (`zap-to-char') reads a character and kills from point up to (but not
                    699: including) the next occurrence of that character in the buffer.  If
                    700: there is no next occurrence, killing goes to the end of the buffer.  A
                    701: numeric argument acts as a repeat count.  A negative argument means to
                    702: search backward and kill text before point.
                    703: 
                    704:    Other syntactic units can be killed: words, with `M-DEL' and `M-d'
                    705: (*note Words::.); sexps, with `C-M-k' (*note Lists::.); and sentences,
                    706: with `C-x DEL' and `M-k' (*note Sentences::.).
                    707: 
                    708: 
                    709: File: emacs,  Node: Yanking,  Next: Accumulating Text,  Prev: Killing,  Up: Top
                    710: 
                    711: Yanking
                    712: =======
                    713: 
                    714:    "Yanking" is getting back text which was killed.  This is what some
                    715: systems call "pasting".  The usual way to move or copy text is to kill
                    716: it and then yank it one or more times.
                    717: 
                    718: `C-y'
                    719:      Yank last killed text (`yank').
                    720: 
                    721: `M-y'
                    722:      Replace re-inserted killed text with the previously killed text
                    723:      (`yank-pop').
                    724: 
                    725: `M-w'
                    726:      Save region as last killed text without actually killing it
                    727:      (`copy-region-as-kill').
                    728: 
                    729: `C-M-w'
                    730:      Append next kill to last batch of killed text (`append-next-kill').
                    731: 
                    732: * Menu:
                    733: 
                    734: * Kill Ring::       Where killed text is stored.  Basic yanking.
                    735: * Appending Kills:: Several kills in a row all yank together.
                    736: * Earlier Kills::   Yanking something killed some time ago.
                    737: 
                    738: 
                    739: File: emacs,  Node: Kill Ring,  Next: Appending Kills,  Prev: Yanking,  Up: Yanking
                    740: 
                    741: The Kill Ring
                    742: -------------
                    743: 
                    744:    All killed text is recorded in the "kill ring", a list of blocks of
                    745: text that have been killed.  There is only one kill ring, used in all
                    746: buffers, so you can kill text in one buffer and yank it in another
                    747: buffer. This is the usual way to move text from one file to another.
                    748: (*Note Accumulating Text::, for some other ways.)
                    749: 
                    750:    The command `C-y' (`yank') reinserts the text of the most recent
                    751: kill.  It leaves the cursor at the end of the text.  It sets the mark at
                    752: the beginning of the text.  *Note Mark::.
                    753: 
                    754:    `C-u C-y' leaves the cursor in front of the text, and sets the mark
                    755: after it.  This is only if the argument is specified with just a `C-u',
                    756: precisely.  Any other sort of argument, including `C-u' and digits, has
                    757: an effect described below (under "Yanking Earlier Kills").
                    758: 
                    759:    If you wish to copy a block of text, you might want to use `M-w'
                    760: (`copy-region-as-kill'), which copies the region into the kill ring
                    761: without removing it from the buffer.  This is approximately equivalent
                    762: to `C-w' followed by `C-y', except that `M-w' does not mark the buffer
                    763: as "modified" and does not temporarily change the screen.
                    764: 
                    765: 
                    766: File: emacs,  Node: Appending Kills,  Next: Earlier Kills,  Prev: Kill Ring,  Up: Yanking
                    767: 
                    768: Appending Kills
                    769: ---------------
                    770: 
                    771:    Normally, each kill command pushes a new block onto the kill ring.
                    772: However, two or more kill commands in a row combine their text into a
                    773: single entry, so that a single `C-y' gets it all back as it was before
                    774: it was killed.  This means that you don't have to kill all the text in
                    775: one command; you can keep killing line after line, or word after word,
                    776: until you have killed it all, and you can still get it all back at
                    777: once.  (Thus we join television in leading people to kill
                    778: thoughtlessly.)
                    779: 
                    780:    Commands that kill forward from point add onto the end of the
                    781: previous killed text.  Commands that kill backward from point add onto
                    782: the beginning.  This way, any sequence of mixed forward and backward
                    783: kill commands puts all the killed text into one entry without
                    784: rearrangement. Numeric arguments do not break the sequence of appending
                    785: kills.  For example, suppose the buffer contains
                    786: 
                    787:      This is the first
                    788:      line of sample text
                    789:      and here is the third.
                    790: 
                    791: with point at the beginning of the second line.  If you type `C-k C-u 2
                    792: M-DEL C-k', the first `C-k' kills the text `line of sample text', `C-u
                    793: 2 M-DEL' kills `the first' with the newline that followed it, and the
                    794: second `C-k' kills the newline after the second line.  The result is
                    795: that the buffer contains `This is and here is the third.' and a single
                    796: kill entry contains `the firstRETline of sample textRET'--all the
                    797: killed text, in its original order.
                    798: 
                    799:    If a kill command is separated from the last kill command by other
                    800: commands (not just numeric arguments), it starts a new entry on the kill
                    801: ring.  But you can force it to append by first typing the command
                    802: `C-M-w' (`append-next-kill') in front of it.  The `C-M-w' tells the
                    803: following command, if it is a kill command, to append the text it kills
                    804: to the last killed text, instead of starting a new entry.  With
                    805: `C-M-w', you can kill several separated pieces of text and accumulate
                    806: them to be yanked back in one place.
                    807: 
                    808: 
                    809: File: emacs,  Node: Earlier Kills,  Prev: Appending Kills,  Up: Yanking
                    810: 
                    811: Yanking Earlier Kills
                    812: ---------------------
                    813: 
                    814:    To recover killed text that is no longer the most recent kill, you
                    815: need the `Meta-y' (`yank-pop') command.  `M-y' can be used only after a
                    816: `C-y' or another `M-y'.  It takes the text previously yanked and
                    817: replaces it with the text from an earlier kill.  So, to recover the
                    818: text of the next-to-the-last kill, you first use `C-y' to recover the
                    819: last kill, and then use `M-y' to replace it with the previous kill.
                    820: 
                    821:    You can think in terms of a "last yank" pointer which points at an
                    822: item in the kill ring.  Each time you kill, the "last yank" pointer
                    823: moves to the newly made item at the front of the ring.  `C-y' yanks the
                    824: item which the "last yank" pointer points to.  `M-y' moves the "last
                    825: yank" pointer to a different item, and the text in the buffer changes to
                    826: match.  Enough `M-y' commands can move the pointer to any item in the
                    827: ring, so you can get any item into the buffer.  Eventually the pointer
                    828: reaches the end of the ring; the next `M-y' moves it to the first item
                    829: again.
                    830: 
                    831:    Yanking moves the "last yank" pointer around the ring, but it does
                    832: not change the order of the entries in the ring, which always runs from
                    833: the most recent kill at the front to the oldest one still remembered.
                    834: 
                    835:    `M-y' can take a numeric argument, which tells it how many items to
                    836: advance the "last yank" pointer by.  A negative argument moves the
                    837: pointer toward the front of the ring; from the front of the ring, it
                    838: moves to the last entry and starts moving forward from there.
                    839: 
                    840:    Once the text you are looking for is brought into the buffer, you can
                    841: stop doing `M-y' commands and it will stay there.  It's just a copy of
                    842: the kill ring item, so editing it in the buffer does not change what's
                    843: in the ring.  As long as no new killing is done, the "last yank" pointer
                    844: remains at the same place in the kill ring, so repeating `C-y' will
                    845: yank another copy of the same old kill.
                    846: 
                    847:    If you know how many `M-y' commands it would take to find the text
                    848: you want, you can yank that text in one step using `C-y' with a numeric
                    849: argument.  `C-y' with an argument greater than one restores the text
                    850: the specified number of entries back in the kill ring.  Thus, `C-u 2
                    851: C-y' gets the next to the last block of killed text.  It is equivalent
                    852: to `C-y M-y'.  `C-y' with a numeric argument starts counting from the
                    853: "last yank" pointer, and sets the "last yank" pointer to the entry that
                    854: it yanks.
                    855: 
                    856:    The length of the kill ring is controlled by the variable
                    857: `kill-ring-max'; no more than that many blocks of killed text are saved.
                    858: 
                    859: 
                    860: File: emacs,  Node: Accumulating Text,  Next: Rectangles,  Prev: Yanking,  Up: Top
                    861: 
                    862: Accumulating Text
                    863: =================
                    864: 
                    865:    Usually we copy or move text by killing it and yanking it, but there
                    866: are other ways that are useful for copying one block of text in many
                    867: places, or for copying many scattered blocks of text into one place.
                    868: 
                    869:    You can accumulate blocks of text from scattered locations either
                    870: into a buffer or into a file if you like.  These commands are described
                    871: here.  You can also use Emacs registers for storing and accumulating
                    872: text. *Note Registers::.
                    873: 
                    874: `C-x a'
                    875:      Append region to contents of specified buffer (`append-to-buffer').
                    876: 
                    877: `M-x prepend-to-buffer'
                    878:      Prepend region to contents of specified buffer.
                    879: 
                    880: `M-x copy-to-buffer'
                    881:      Copy region into specified buffer, deleting that buffer's old
                    882:      contents.
                    883: 
                    884: `M-x insert-buffer'
                    885:      Insert contents of specified buffer into current buffer at point.
                    886: 
                    887: `M-x append-to-file'
                    888:      Append region to contents of specified file, at the end.
                    889: 
                    890:    To accumulate text into a buffer, use the command `C-x a BUFFERNAME'
                    891: (`append-to-buffer'), which inserts a copy of the region into the
                    892: buffer BUFFERNAME, at the location of point in that buffer.  If there
                    893: is no buffer with that name, one is created.  If you append text into a
                    894: buffer which has been used for editing, the copied text goes into the
                    895: middle of the text of the buffer, wherever point happens to be in it.
                    896: 
                    897:    Point in that buffer is left at the end of the copied text, so
                    898: successive uses of `C-x a' accumulate the text in the specified buffer
                    899: in the same order as they were copied.  Strictly speaking, `C-x a' does
                    900: not always append to the text already in the buffer; but if `C-x a' is
                    901: the only command used to alter a buffer, it does always append to the
                    902: existing text because point is always at the end.
                    903: 
                    904:    `M-x prepend-to-buffer' is just like `C-x a' except that point in
                    905: the other buffer is left before the copied text, so successive
                    906: prependings add text in reverse order.  `M-x copy-to-buffer' is similar
                    907: except that any existing text in the other buffer is deleted, so the
                    908: buffer is left containing just the text newly copied into it.
                    909: 
                    910:    You can retrieve the accumulated text from that buffer with `M-x
                    911: insert-buffer'; this too takes BUFFERNAME as an argument.  It inserts a
                    912: copy of the text in buffer BUFFERNAME into the selected buffer. You
                    913: could alternatively select the other buffer for editing, perhaps moving
                    914: text from it by killing or with `C-x a'.  *Note Buffers::, for
                    915: background information on buffers.
                    916: 
                    917:    Instead of accumulating text within Emacs, in a buffer, you can
                    918: append text directly into a file with `M-x append-to-file', which takes
                    919: FILE-NAME as an argument.  It adds the text of the region to the end of
                    920: the specified file.  The file is changed immediately on disk. This
                    921: command is normally used with files that are not being visited in
                    922: Emacs.  Using it on a file that Emacs is visiting can produce confusing
                    923: results, because the text inside Emacs for that file will not change
                    924: while the file itself changes.
                    925: 
                    926: 
                    927: File: emacs,  Node: Rectangles,  Next: Registers,  Prev: Accumulating Text,  Up: Top
                    928: 
                    929: Rectangles
                    930: ==========
                    931: 
                    932:    The rectangle commands affect rectangular areas of the text: all the
                    933: characters between a certain pair of columns, in a certain range of
                    934: lines. Commands are provided to kill rectangles, yank killed
                    935: rectangles, clear them out, or delete them.  Rectangle commands are
                    936: useful with text in multicolumnar formats, such as perhaps code with
                    937: comments at the right, or for changing text into or out of such formats.
                    938: 
                    939:    When you must specify a rectangle for a command to work on, you do
                    940: it by putting the mark at one corner and point at the opposite corner.
                    941: The rectangle thus specified is called the "region-rectangle" because
                    942: it is controlled about the same way the region is controlled. But
                    943: remember that a given combination of point and mark values can be
                    944: interpreted either as specifying a region or as specifying a rectangle;
                    945: it is up to the command that uses them to choose the interpretation.
                    946: 
                    947: `M-x delete-rectangle'
                    948:      Delete the text of the region-rectangle, moving any following text
                    949:      on each line leftward to the left edge of the region-rectangle.
                    950: 
                    951: `M-x kill-rectangle'
                    952:      Similar, but also save the contents of the region-rectangle as the
                    953:      "last killed rectangle".
                    954: 
                    955: `M-x yank-rectangle'
                    956:      Yank the last killed rectangle with its upper left corner at point.
                    957: 
                    958: `M-x open-rectangle'
                    959:      Insert blank space to fill the space of the region-rectangle. The
                    960:      previous contents of the region-rectangle are pushed rightward.
                    961: 
                    962: `M-x clear-rectangle'
                    963:      Clear the region-rectangle by replacing its contents with spaces.
                    964: 
                    965:    The rectangle operations fall into two classes: commands deleting and
                    966: moving rectangles, and commands for blank rectangles.
                    967: 
                    968:    There are two ways to get rid of the text in a rectangle: you can
                    969: discard the text (delete it) or save it as the "last killed" rectangle.
                    970:  The commands for these two ways are `M-x delete-rectangle' and `M-x
                    971: kill-rectangle'.  In either case, the portion of each line that falls
                    972: inside the rectangle's boundaries is deleted, causing following text
                    973: (if any) on the line to move left.
                    974: 
                    975:    Note that "killing" a rectangle is not killing in the usual sense;
                    976: the rectangle is not stored in the kill ring, but in a special place
                    977: that can only record the most recent rectangle killed.  This is because
                    978: yanking a rectangle is so different from yanking linear text that
                    979: different yank commands have to be used and yank-popping is hard to
                    980: make sense of.
                    981: 
                    982:    Inserting a rectangle is the opposite of deleting one.  All you need
                    983: to specify is where to put the upper left corner; that is done by
                    984: putting point there.  The rectangle's first line is inserted there, the
                    985: rectangle's second line is inserted at a point one line vertically
                    986: down, and so on. The number of lines affected is determined by the
                    987: height of the saved rectangle.
                    988: 
                    989:    To insert the last killed rectangle, type `M-x yank-rectangle'. This
                    990: can be used to convert single-column lists into double-column lists;
                    991: kill the second half of the list as a rectangle and then yank it beside
                    992: the first line of the list.
                    993: 
                    994:    There are two commands for working with blank rectangles: `M-x
                    995: clear-rectangle' to blank out existing text, and `M-x open-rectangle'
                    996: to insert a blank rectangle.  Clearing a rectangle is equivalent to
                    997: deleting it and then inserting as blank rectangle of the same size.
                    998: 
                    999:    Rectangles can also be copied into and out of registers. *Note
                   1000: Rectangle Registers: RegRect.
                   1001: 
                   1002: 
                   1003: File: emacs,  Node: Registers,  Next: Display,  Prev: Rectangles,  Up: Top
                   1004: 
                   1005: Registers
                   1006: *********
                   1007: 
                   1008:    Emacs "registers" are places you can save text or positions for
                   1009: later use.  Text saved in a register can be copied into the buffer once
                   1010: or many times; a position saved in a register is used by moving point
                   1011: to that position.  Rectangles can also be copied into and out of
                   1012: registers (*note Rectangles::.).
                   1013: 
                   1014:    Each register has a name, which is a single character.  A register
                   1015: can store either a piece of text or a position or a rectangle, but only
                   1016: one thing at any given time.  Whatever you store in a register remains
                   1017: there until you store something else in that register.
                   1018: 
                   1019: * Menu:
                   1020: 
                   1021: * RegPos::    Saving positions in registers.
                   1022: * RegText::   Saving text in registers.
                   1023: * RegRect::   Saving rectangles in registers.
                   1024: 
                   1025: `M-x view-register RET R'
                   1026:      Display a description of what register R contains.
                   1027: 
                   1028:    `M-x view-register' reads a register name as an argument and then
                   1029: displays the contents of the specified register.
                   1030: 
                   1031: 
                   1032: File: emacs,  Node: RegPos,  Next: RegText,  Prev: Registers,  Up: Registers
                   1033: 
                   1034: Saving Positions in Registers
                   1035: =============================
                   1036: 
                   1037:    Saving a position records a spot in a buffer so that you can move
                   1038: back there later.  Moving to a saved position reselects the buffer and
                   1039: moves point to the spot.
                   1040: 
                   1041: `C-x / R'
                   1042:      Save location of point in register R (`point-to-register').
                   1043: 
                   1044: `C-x j R'
                   1045:      Jump to the location saved in register R (`register-to-point').
                   1046: 
                   1047:    To save the current location of point in a register, choose a name R
                   1048: and type `C-x / R'.  The register R retains the location thus saved
                   1049: until you store something else in that register.
                   1050: 
                   1051:    The command `C-x j R' moves point to the location recorded in
                   1052: register R.  The register is not affected; it continues to record the
                   1053: same location.  You can jump to the same position using the same
                   1054: register any number of times.
                   1055: 
                   1056: 
                   1057: File: emacs,  Node: RegText,  Next: RegRect,  Prev: RegPos,  Up: Registers
                   1058: 
                   1059: Saving Text in Registers
                   1060: ========================
                   1061: 
                   1062:    When you want to insert a copy of the same piece of text frequently,
                   1063: it may be impractical to use the kill ring, since each subsequent kill
                   1064: moves the piece of text further down on the ring.  It becomes hard to
                   1065: keep track of what argument is needed to retrieve the same text with
                   1066: `C-y'.  An alternative is to store the text in a register with `C-x x'
                   1067: (`copy-to-register') and then retrieve it with `C-x g'
                   1068: (`insert-register').
                   1069: 
                   1070: `C-x x R'
                   1071:      Copy region into register R (`copy-to-register').
                   1072: 
                   1073: `C-x g R'
                   1074:      Insert text contents of register R (`insert-register').
                   1075: 
                   1076:    `C-x x R' stores a copy of the text of the region into the register
                   1077: named R.  Given a numeric argument, `C-x x' deletes the text from the
                   1078: buffer as well.
                   1079: 
                   1080:    `C-x g R' inserts in the buffer the text from register R. Normally
                   1081: it leaves point before the text and places the mark after, but with a
                   1082: numeric argument it puts point after the text and the mark before.
                   1083: 
                   1084: 
                   1085: File: emacs,  Node: RegRect,  Prev: RegText,  Up: Registers
                   1086: 
                   1087: Saving Rectangles in Registers
                   1088: ==============================
                   1089: 
                   1090:    A register can contain a rectangle instead of linear text.  The
                   1091: rectangle is represented as a list of strings.  *Note Rectangles::, for
                   1092: basic information on rectangles and how rectangles in the buffer are
                   1093: specified.
                   1094: 
                   1095: `C-x r R'
                   1096:      Copy the region-rectangle into register R
                   1097:      (`copy-region-to-rectangle'). With numeric argument, delete it as
                   1098:      well.
                   1099: 
                   1100: `C-x g R'
                   1101:      Insert the rectangle stored in register R (if it contains a
                   1102:      rectangle) (`insert-register').
                   1103: 
                   1104:    The `C-x g' command inserts linear text if the register contains
                   1105: that, or inserts a rectangle if the register contains one.
                   1106: 
                   1107: 
                   1108: File: emacs,  Node: Display,  Next: Search,  Prev: Registers,  Up: Top
                   1109: 
                   1110: Controlling the Display
                   1111: ***********************
                   1112: 
                   1113:    Since only part of a large buffer fits in the window, Emacs tries to
                   1114: show the part that is likely to be interesting.  The display control
                   1115: commands allow you to specify which part of the text you want to see.
                   1116: 
                   1117: `C-l'
                   1118:      Clear screen and redisplay, scrolling the selected window to center
                   1119:      point vertically within it (`recenter').
                   1120: 
                   1121: `C-v'
                   1122:      Scroll forward (a windowful or a specified number of lines)
                   1123:      (`scroll-up').
                   1124: 
                   1125: `M-v'
                   1126:      Scroll backward (`scroll-down').
                   1127: 
                   1128: `ARG C-l'
                   1129:      Scroll so point is on line ARG (`recenter').
                   1130: 
                   1131: `C-x <'
                   1132:      Scroll text in current window to the left (`scroll-left').
                   1133: 
                   1134: `C-x >'
                   1135:      Scroll to the right (`scroll-right').
                   1136: 
                   1137: `C-x $'
                   1138:      Make deeply indented lines invisible (`set-selective-display').
                   1139: 
                   1140: * Menu:
                   1141: 
                   1142: * Scrolling::             Moving text up and down in a window.
                   1143: * Horizontal Scrolling::   Moving text left and right in a window.
                   1144: * Selective Display::      Hiding lines with lots of indentation.
                   1145: * Display Vars::           Information on variables for customizing display.
                   1146: 
                   1147: 
                   1148: File: emacs,  Node: Scrolling,  Next: Horizontal Scrolling,  Prev: Display,  Up: Display
                   1149: 
                   1150: Scrolling
                   1151: =========
                   1152: 
                   1153:    If a buffer contains text that is too large to fit entirely within a
                   1154: window that is displaying the buffer, Emacs shows a contiguous section
                   1155: of the text.  The section shown always contains point.
                   1156: 
                   1157:    "Scrolling" means moving text up or down in the window so that
                   1158: different parts of the text are visible.  Scrolling forward means that
                   1159: text moves up, and new text appears at the bottom.  Scrolling backward
                   1160: moves text down and new text appears at the top.
                   1161: 
                   1162:    Scrolling happens automatically if you move point past the bottom or
                   1163: top of the window.  You can also explicitly request scrolling with the
                   1164: commands in this section.
                   1165: 
                   1166: `C-l'
                   1167:      Clear screen and redisplay, scrolling the selected window to center
                   1168:      point vertically within it (`recenter').
                   1169: 
                   1170: `C-v'
                   1171:      Scroll forward (a windowful or a specified number of lines)
                   1172:      (`scroll-up').
                   1173: 
                   1174: `M-v'
                   1175:      Scroll backward (`scroll-down').
                   1176: 
                   1177: `ARG C-l'
                   1178:      Scroll so point is on line ARG (`recenter').
                   1179: 
                   1180:    The most basic scrolling command is `C-l' (`recenter') with no
                   1181: argument.  It clears the entire screen and redisplays all windows.  In
                   1182: addition, the selected window is scrolled so that point is halfway down
                   1183: from the top of the window.
                   1184: 
                   1185:    The scrolling commands `C-v' and `M-v' let you move all the text in
                   1186: the window up or down a few lines.  `C-v' (`scroll-up') with an
                   1187: argument shows you that many more lines at the bottom of the window,
                   1188: moving the text and point up together as `C-l' might.  `C-v' with a
                   1189: negative argument shows you more lines at the top of the window.
                   1190: `Meta-v' (`scroll-down') is like `C-v', but moves in the opposite
                   1191: direction.
                   1192: 
                   1193:    To read the buffer a windowful at a time, use `C-v' with no argument.
                   1194: It takes the last two lines at the bottom of the window and puts them at
                   1195: the top, followed by nearly a whole windowful of lines not previously
                   1196: visible.  If point was in the text scrolled off the top, it moves to the
                   1197: new top of the window.  `M-v' with no argument moves backward with
                   1198: overlap similarly.  The number of lines of overlap across a `C-v' or
                   1199: `M-v' is controlled by the variable `next-screen-context-lines'; by
                   1200: default, it is two.
                   1201: 
                   1202:    Another way to do scrolling is with `C-l' with a numeric argument.
                   1203: `C-l' does not clear the screen when given an argument; it only scrolls
                   1204: the selected window.  With a positive argument N, it repositions text
                   1205: to put point N lines down from the top.  An argument of zero puts point
                   1206: on the very top line.  Point does not move with respect to the text;
                   1207: rather, the text and point move rigidly on the screen.  `C-l' with a
                   1208: negative argument puts point that many lines from the bottom of the
                   1209: window. For example, `C-u - 1 C-l' puts point on the bottom line, and
                   1210: `C-u - 5 C-l' puts it five lines from the bottom.  Just `C-u' as
                   1211: argument, as in `C-u C-l', scrolls point to the center of the screen.
                   1212: 
                   1213:    Scrolling happens automatically if point has moved out of the visible
                   1214: portion of the text when it is time to display.  Usually the scrolling
                   1215: is done so as to put point vertically centered within the window. 
                   1216: However, if the variable `scroll-step' has a nonzero value, an attempt
                   1217: is made to scroll the buffer by that many lines; if that is enough to
                   1218: bring point back into visibility, that is what is done.
                   1219: 
                   1220: 

unix.superglobalmegacorp.com

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