Annotation of GNUtools/emacs/info/emacs-12, 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: Init Examples,  Next: Terminal Init,  Prev: Init Syntax,  Up: Init File
                     27: 
                     28: Init File Examples
                     29: ------------------
                     30: 
                     31:    Here are some examples of doing certain commonly desired things with
                     32: Lisp expressions:
                     33: 
                     34:    * Make TAB in C mode just insert a tab if point is in the middle of a
                     35:      line.
                     36: 
                     37:           (setq c-tab-always-indent nil)
                     38: 
                     39:      Here we have a variable whose value is normally `t' for `true' and
                     40:      the alternative is `nil' for `false'.
                     41: 
                     42:    * Make searches case sensitive by default (in all buffers that do not
                     43:      override this).
                     44: 
                     45:           (setq-default case-fold-search nil)
                     46: 
                     47:      This sets the default value, which is effective in all buffers
                     48:      that do not have local values for the variable.  Setting
                     49:      `case-fold-search' with `setq' affects only the current buffer's
                     50:      local value, which is not what you probably want to do in an init
                     51:      file.
                     52: 
                     53:    * Make Text mode the default mode for new buffers.
                     54: 
                     55:           (setq default-major-mode 'text-mode)
                     56: 
                     57:      Note that `text-mode' is used because it is the command for
                     58:      entering the mode we want.  A single-quote is written before it to
                     59:      make a symbol constant; otherwise, `text-mode' would be treated as
                     60:      a variable name.
                     61: 
                     62:    * Turn on Auto Fill mode automatically in Text mode and related
                     63:      modes.
                     64: 
                     65:           (setq text-mode-hook
                     66:             '(lambda () (auto-fill-mode 1)))
                     67: 
                     68:      Here we have a variable whose value should be a Lisp function.  The
                     69:      function we supply is a list starting with `lambda', and a single
                     70:      quote is written in front of it to make it (for the purpose of this
                     71:      `setq') a list constant rather than an expression.  Lisp functions
                     72:      are not explained here, but for mode hooks it is enough to know
                     73:      that `(auto-fill-mode 1)' is an expression that will be executed
                     74:      when Text mode is entered, and you could replace it with any other
                     75:      expression that you like, or with several expressions in a row.
                     76: 
                     77:           (setq text-mode-hook 'turn-on-auto-fill)
                     78: 
                     79:      This is another way to accomplish the same result.
                     80:      `turn-on-auto-fill' is a symbol whose function definition is
                     81:      `(lambda () (auto-fill-mode 1))'.
                     82: 
                     83:    * Load the installed Lisp library named `foo' (actually a file
                     84:      `foo.elc' or `foo.el' in a standard Emacs directory).
                     85: 
                     86:           (load "foo")
                     87: 
                     88:      When the argument to `load' is a relative pathname, not starting
                     89:      with `/' or `~', `load' searches the directories in `load-path'
                     90:      (*note Loading::.).
                     91: 
                     92:    * Load the compiled Lisp file `foo.elc' from your home directory.
                     93: 
                     94:           (load "~/foo.elc")
                     95: 
                     96:      Here an absolute file name is used, so no searching is done.
                     97: 
                     98:    * Rebind the key `C-x l' to run the function `make-symbolic-link'.
                     99: 
                    100:           (global-set-key "\C-xl" 'make-symbolic-link)
                    101: 
                    102:      or
                    103: 
                    104:           (define-key global-map "\C-xl" 'make-symbolic-link)
                    105: 
                    106:      Note once again the single-quote used to refer to the symbol
                    107:      `make-symbolic-link' instead of its value as a variable.
                    108: 
                    109:    * Do the same thing for C mode only.
                    110: 
                    111:           (define-key c-mode-map "\C-xl" 'make-symbolic-link)
                    112: 
                    113:    * Redefine all keys which now run `next-line' in Fundamental mode so
                    114:      that they run `forward-line' instead.
                    115: 
                    116:           (substitute-key-definition 'next-line 'forward-line
                    117:                                      global-map)
                    118: 
                    119:    * Make `C-x C-v' undefined.
                    120: 
                    121:           (global-unset-key "\C-x\C-v")
                    122: 
                    123:      One reason to undefine a key is so that you can make it a prefix.
                    124:      Simply defining `C-x C-v ANYTHING' would make `C-x C-v' a prefix,
                    125:      but `C-x C-v' must be freed of any non-prefix definition first.
                    126: 
                    127:    * Make `$' have the syntax of punctuation in Text mode. Note the use
                    128:      of a character constant for `$'.
                    129: 
                    130:           (modify-syntax-entry ?\$ "." text-mode-syntax-table)
                    131: 
                    132:    * Enable the use of the command `eval-expression' without
                    133:      confirmation.
                    134: 
                    135:           (put 'eval-expression 'disabled nil)
                    136: 
                    137: 
                    138: File: emacs,  Node: Terminal Init,  Next: Debugging Init,  Prev: Init Examples,  Up: Init File
                    139: 
                    140: Terminal-specific Initialization
                    141: --------------------------------
                    142: 
                    143:    Each terminal type can have a Lisp library to be loaded into Emacs
                    144: when it is run on that type of terminal.  For a terminal type named
                    145: TERMTYPE, the library is called `term/TERMTYPE' and it is found by
                    146: searching the directories `load-path' as usual and trying the suffixes
                    147: `.elc' and `.el'.  Normally it appears in the subdirectory `term' of
                    148: the directory where most Emacs libraries are kept.
                    149: 
                    150:    The usual purpose of the terminal-specific library is to define the
                    151: escape sequences used by the terminal's function keys using the library
                    152: `keypad.el'.  See the file `term/vt100.el' for an example of how this
                    153: is done.
                    154: 
                    155:    When the terminal type contains a hyphen, only the part of the name
                    156: before the first hyphen is significant in choosing the library name.
                    157: Thus, terminal types `aaa-48' and `aaa-30-rv' both use the library
                    158: `term/aaa'.  The code in the library can use `(getenv "TERM")' to find
                    159: the full terminal type name.
                    160: 
                    161:    The library's name is constructed by concatenating the value of the
                    162: variable `term-file-prefix' and the terminal type.  Your `.emacs' file
                    163: can prevent the loading of the terminal-specific library by setting
                    164: `term-file-prefix' to `nil'.
                    165: 
                    166:    The value of the variable `term-setup-hook', if not `nil', is called
                    167: as a function of no arguments at the end of Emacs initialization, after
                    168: both your `.emacs' file and any terminal-specific library have been
                    169: read in.  You can set the value in the `.emacs' file to override part
                    170: of any of the terminal-specific libraries and to define initializations
                    171: for terminals that do not have a library.
                    172: 
                    173: 
                    174: File: emacs,  Node: Debugging Init,  Prev: Terminal Init,  Up: Init File
                    175: 
                    176: Debugging Your `.emacs' File
                    177: ----------------------------
                    178: 
                    179:    Ordinarily, Emacs traps errors that occur while reading `.emacs'.
                    180: This is convenient, most of the time, because it means you can still get
                    181: an Emacs in which you can edit.  But it causes inconvenience because
                    182: there is no way to enter the debugger if there is an error.
                    183: 
                    184:    But you can run the `.emacs' file explicitly in an Emacs that is
                    185: already set up, and debug errors at that time.
                    186: 
                    187:      M-x set-variable
                    188:      debug-on-error
                    189:      t
                    190:      M-x load-file
                    191:      ~/.emacs
                    192: 
                    193:    In Emacs 19, use the `-debug-init' option if you want errors in
                    194: `.emacs' to enter the debugger.
                    195: 
                    196: 
                    197: File: emacs,  Node: Quitting,  Next: Lossage,  Prev: Customization,  Up: Top
                    198: 
                    199: Quitting and Aborting
                    200: =====================
                    201: 
                    202: `C-g'
                    203:      Quit.  Cancel running or partially typed command.
                    204: 
                    205: `C-]'
                    206:      Abort innermost recursive editing level and cancel the command
                    207:      which invoked it (`abort-recursive-edit').
                    208: 
                    209: `M-x top-level'
                    210:      Abort all recursive editing levels that are currently executing.
                    211: 
                    212: `C-x u'
                    213:      Cancel an already-executed command, usually (`undo').
                    214: 
                    215:    There are two ways of cancelling commands which are not finished
                    216: executing: "quitting" with `C-g', and "aborting" with `C-]' or `M-x
                    217: top-level'.  Quitting is cancelling a partially typed command or one
                    218: which is already running.  Aborting is getting out of a recursive
                    219: editing level and cancelling the command that invoked the recursive
                    220: edit.
                    221: 
                    222:    Quitting with `C-g' is used for getting rid of a partially typed
                    223: command, or a numeric argument that you don't want.  It also stops a
                    224: running command in the middle in a relatively safe way, so you can use
                    225: it if you accidentally give a command which takes a long time.  In
                    226: particular, it is safe to quit out of killing; either your text will
                    227: ALL still be there, or it will ALL be in the kill ring (or maybe both).
                    228:  Quitting an incremental search does special things documented under
                    229: searching; in general, it may take two successive `C-g' characters to
                    230: get out of a search.  `C-g' works by setting the variable `quit-flag' to
                    231: `t' the instant `C-g' is typed; Emacs Lisp checks this variable
                    232: frequently and quits if it is non-`nil'.  `C-g' is only actually
                    233: executed as a command if it is typed while Emacs is waiting for input.
                    234: 
                    235:    If you quit twice in a row before the first `C-g' is recognized, you
                    236: activate the "emergency escape" feature and return to the shell. *Note
                    237: Emergency Escape::.
                    238: 
                    239:    Aborting with `C-]' (`abort-recursive-edit') is used to get out of a
                    240: recursive editing level and cancel the command which invoked it.
                    241: Quitting with `C-g' does not do this, and could not do this, because it
                    242: is used to cancel a partially typed command within the recursive
                    243: editing level.  Both operations are useful.  For example, if you are in
                    244: the Emacs debugger (*note Lisp Debug::.) and have typed `C-u 8' to
                    245: enter a numeric argument, you can cancel that argument with `C-g' and
                    246: remain in the debugger.
                    247: 
                    248:    The command `M-x top-level' is equivalent to "enough" `C-]' commands
                    249: to get you out of all the levels of recursive edits that you are in. 
                    250: `C-]' gets you out one level at a time, but `M-x top-level' goes out
                    251: all levels at once.  Both `C-]' and `M-x top-level' are like all other
                    252: commands, and unlike `C-g', in that they are effective only when Emacs
                    253: is ready for a command.  `C-]' is an ordinary key and has its meaning
                    254: only because of its binding in the keymap. *Note Recursive Edit::.
                    255: 
                    256:    `C-x u' (`undo') is not strictly speaking a way of cancelling a
                    257: command, but you can think of it as cancelling a command already
                    258: finished executing.  *Note Undo::.
                    259: 
                    260: 
                    261: File: emacs,  Node: Lossage,  Next: Bugs,  Prev: Quitting,  Up: Top
                    262: 
                    263: Dealing with Emacs Trouble
                    264: ==========================
                    265: 
                    266:    This section describes various conditions in which Emacs fails to
                    267: work, and how to recognize them and correct them.
                    268: 
                    269: * Menu:
                    270: 
                    271: * Stuck Recursive::    `[...]' in mode line around the parentheses
                    272: * Screen Garbled::     Garbage on the screen
                    273: * Text Garbled::       Garbage in the text
                    274: * Unasked-for Search:: Spontaneous entry to incremental search
                    275: * Emergency Escape::   Emergency escape--
                    276:                         What to do if Emacs stops responding
                    277: * Total Frustration::  When you are at your wits' end.
                    278: 
                    279: 
                    280: File: emacs,  Node: Stuck Recursive,  Next: Screen Garbled,  Prev: Lossage,  Up: Lossage
                    281: 
                    282: Recursive Editing Levels
                    283: ------------------------
                    284: 
                    285:    Recursive editing levels are important and useful features of Emacs,
                    286: but they can seem like malfunctions to the user who does not understand
                    287: them.
                    288: 
                    289:    If the mode line has square brackets `[...]' around the parentheses
                    290: that contain the names of the major and minor modes, you have entered a
                    291: recursive editing level.  If you did not do this on purpose, or if you
                    292: don't understand what that means, you should just get out of the
                    293: recursive editing level.  To do so, type `M-x top-level'.  This is
                    294: called getting back to top level.  *Note Recursive Edit::.
                    295: 
                    296: 
                    297: File: emacs,  Node: Screen Garbled,  Next: Text Garbled,  Prev: Stuck Recursive,  Up: Lossage
                    298: 
                    299: Garbage on the Screen
                    300: ---------------------
                    301: 
                    302:    If the data on the screen looks wrong, the first thing to do is see
                    303: whether the text is really wrong.  Type `C-l', to redisplay the entire
                    304: screen.  If it appears correct after this, the problem was entirely in
                    305: the previous screen update.
                    306: 
                    307:    Display updating problems often result from an incorrect termcap
                    308: entry for the terminal you are using.  The file `etc/TERMS' in the Emacs
                    309: distribution gives the fixes for known problems of this sort. `INSTALL'
                    310: contains general advice for these problems in one of its sections. 
                    311: Very likely there is simply insufficient padding for certain display
                    312: operations.  To investigate the possibility that you have this sort of
                    313: problem, try Emacs on another terminal made by a different manufacturer.
                    314: If problems happen frequently on one kind of terminal but not another
                    315: kind, it is likely to be a bad termcap entry, though it could also be
                    316: due to a bug in Emacs that appears for terminals that have or that lack
                    317: specific features.
                    318: 
                    319: 
                    320: File: emacs,  Node: Text Garbled,  Next: Unasked-for Search,  Prev: Screen Garbled,  Up: Lossage
                    321: 
                    322: Garbage in the Text
                    323: -------------------
                    324: 
                    325:    If `C-l' shows that the text is wrong, try undoing the changes to it
                    326: using `C-x u' until it gets back to a state you consider correct.  Also
                    327: try `C-h l' to find out what command you typed to produce the observed
                    328: results.
                    329: 
                    330:    If a large portion of text appears to be missing at the beginning or
                    331: end of the buffer, check for the word `Narrow' in the mode line. If it
                    332: appears, the text is still present, but marked off-limits. To make it
                    333: visible again, type `C-x w'.  *Note Narrowing::.
                    334: 
                    335: 
                    336: File: emacs,  Node: Unasked-for Search,  Next: Emergency Escape,  Prev: Text Garbled,  Up: Lossage
                    337: 
                    338: Spontaneous Entry to Incremental Search
                    339: ---------------------------------------
                    340: 
                    341:    If Emacs spontaneously displays `I-search:' at the bottom of the
                    342: screen, it means that the terminal is sending `C-s' and `C-q' according
                    343: to the poorly designed `xon/xoff' "flow control" protocol.  You should
                    344: try to prevent this by putting the terminal in a mode where it will not
                    345: use flow control or giving it enough padding that it will never send a
                    346: `C-s'.  If that cannot be done, you must tell Emacs to expect flow
                    347: control to be used, until you can get a properly designed terminal.
                    348: 
                    349:    Information on how to do these things can be found in the file
                    350: `INSTALL' in the Emacs distribution.
                    351: 
                    352: 
                    353: File: emacs,  Node: Emergency Escape,  Next: Total Frustration,  Prev: Unasked-for Search,  Up: Lossage
                    354: 
                    355: Emergency Escape
                    356: ----------------
                    357: 
                    358:    Because at times there have been bugs causing Emacs to loop without
                    359: checking `quit-flag', a special feature causes Emacs to be suspended
                    360: immediately if you type a second `C-g' while the flag is already set,
                    361: so you can always get out of GNU Emacs.  Normally Emacs recognizes and
                    362: clears `quit-flag' (and quits!) quickly enough to prevent this from
                    363: happening.
                    364: 
                    365:    When you resume Emacs after a suspension caused by multiple `C-g', it
                    366: asks two questions before going back to what it had been doing:
                    367: 
                    368:      Auto-save? (y or n)
                    369:      Abort (and dump core)? (y or n)
                    370: 
                    371: Answer each one with `y' or `n' followed by RET.
                    372: 
                    373:    Saying `y' to `Auto-save?' causes immediate auto-saving of all
                    374: modified buffers in which auto-saving is enabled.
                    375: 
                    376:    Saying `y' to `Abort (and dump core)?' causes an illegal instruction
                    377: to be executed, dumping core.  This is to enable a wizard to figure out
                    378: why Emacs was failing to quit in the first place.  Execution does not
                    379: continue after a core dump.  If you answer `n', execution does
                    380: continue.  With luck, GNU Emacs will ultimately check `quit-flag' and
                    381: quit normally. If not, and you type another `C-g', it is suspended
                    382: again.
                    383: 
                    384:    If Emacs is not really hung, just slow, you may invoke the double
                    385: `C-g' feature without really meaning to.  Then just resume and answer
                    386: `n' to both questions, and you will arrive at your former state.
                    387: Presumably the quit you requested will happen soon.
                    388: 
                    389:    The double-`C-g' feature may be turned off when Emacs is running
                    390: under a window system, since the window system always enables you to
                    391: kill Emacs or to create another window and run another program.
                    392: 
                    393: 
                    394: File: emacs,  Node: Total Frustration,  Prev: Emergency Escape,  Up: Lossage
                    395: 
                    396: Help for Total Frustration
                    397: --------------------------
                    398: 
                    399:    If using Emacs (or something else) becomes terribly frustrating and
                    400: none of the techniques described above solve the problem, Emacs can
                    401: still help you.
                    402: 
                    403:    First, if the Emacs you are using is not responding to commands, type
                    404: `C-g C-g' to get out of it and then start a new one.
                    405: 
                    406:    Second, type `M-x doctor RET'.
                    407: 
                    408:    The doctor will make you feel better.  Each time you say something to
                    409: the doctor, you must end it by typing RET RET.  This lets the doctor
                    410: know you are finished.
                    411: 
                    412: 
                    413: File: emacs,  Node: Bugs,  Next: Version 19,  Prev: Lossage,  Up: Top
                    414: 
                    415: Reporting Bugs
                    416: ==============
                    417: 
                    418:    Sometimes you will encounter a bug in Emacs.  Although we cannot
                    419: promise we can or will fix the bug, and we might not even agree that it
                    420: is a bug, we want to hear about bugs you encounter in case we do want
                    421: to fix them.
                    422: 
                    423:    To make it possible for us to fix a bug, you must report it.  In
                    424: order to do so effectively, you must know when and how to do it.
                    425: 
                    426: When Is There a Bug
                    427: -------------------
                    428: 
                    429:    If Emacs executes an illegal instruction, or dies with an operating
                    430: system error message that indicates a problem in the program (as
                    431: opposed to something like "disk full"), then it is certainly a bug.
                    432: 
                    433:    If Emacs updates the display in a way that does not correspond to
                    434: what is in the buffer, then it is certainly a bug.  If a command seems
                    435: to do the wrong thing but the problem corrects itself if you type
                    436: `C-l', it is a case of incorrect display updating.
                    437: 
                    438:    Taking forever to complete a command can be a bug, but you must make
                    439: certain that it was really Emacs's fault.  Some commands simply take a
                    440: long time.  Type `C-g' and then `C-h l' to see whether the input Emacs
                    441: received was what you intended to type; if the input was such that you
                    442: KNOW it should have been processed quickly, report a bug.  If you don't
                    443: know whether the command should take a long time, find out by looking
                    444: in the manual or by asking for assistance.
                    445: 
                    446:    If a command you are familiar with causes an Emacs error message in a
                    447: case where its usual definition ought to be reasonable, it is probably a
                    448: bug.
                    449: 
                    450:    If a command does the wrong thing, that is a bug.  But be sure you
                    451: know for certain what it ought to have done.  If you aren't familiar
                    452: with the command, or don't know for certain how the command is supposed
                    453: to work, then it might actually be working right.  Rather than jumping
                    454: to conclusions, show the problem to someone who knows for certain.
                    455: 
                    456:    Finally, a command's intended definition may not be best for editing
                    457: with.  This is a very important sort of problem, but it is also a
                    458: matter of judgment.  Also, it is easy to come to such a conclusion out
                    459: of ignorance of some of the existing features.  It is probably best not
                    460: to complain about such a problem until you have checked the
                    461: documentation in the usual ways, feel confident that you understand it,
                    462: and know for certain that what you want is not available.  If you are
                    463: not sure what the command is supposed to do after a careful reading of
                    464: the manual, check the index and glossary for any terms that may be
                    465: unclear.  If you still do not understand, this indicates a bug in the
                    466: manual.  The manual's job is to make everything clear.  It is just as
                    467: important to report documentation bugs as program bugs.
                    468: 
                    469:    If the on-line documentation string of a function or variable
                    470: disagrees with the manual, one of them must be wrong, so report the bug.
                    471: 
                    472: How to Report a Bug
                    473: -------------------
                    474: 
                    475:    When you decide that there is a bug, it is important to report it
                    476: and to report it in a way which is useful.  What is most useful is an
                    477: exact description of what commands you type, starting with the shell
                    478: command to run Emacs, until the problem happens.  Always include the
                    479: version number of Emacs that you are using; type `M-x emacs-version' to
                    480: print this.
                    481: 
                    482:    The most important principle in reporting a bug is to report FACTS,
                    483: not hypotheses or categorizations.  It is always easier to report the
                    484: facts, but people seem to prefer to strain to posit explanations and
                    485: report them instead.  If the explanations are based on guesses about
                    486: how Emacs is implemented, they will be useless; we will have to try to
                    487: figure out what the facts must have been to lead to such speculations. 
                    488: Sometimes this is impossible.  But in any case, it is unnecessary work
                    489: for us.
                    490: 
                    491:    For example, suppose that you type `C-x C-f /glorp/baz.ugh RET',
                    492: visiting a file which (you know) happens to be rather large, and Emacs
                    493: prints out `I feel pretty today'.  The best way to report the bug is
                    494: with a sentence like the preceding one, because it gives all the facts
                    495: and nothing but the facts.
                    496: 
                    497:    Do not assume that the problem is due to the size of the file and
                    498: say, "When I visit a large file, Emacs prints out `I feel pretty
                    499: today'." This is what we mean by "guessing explanations".  The problem
                    500: is just as likely to be due to the fact that there is a `z' in the file
                    501: name.  If this is so, then when we got your report, we would try out
                    502: the problem with some "large file", probably with no `z' in its name,
                    503: and not find anything wrong.  There is no way in the world that we
                    504: could guess that we should try visiting a file with a `z' in its name.
                    505: 
                    506:    Alternatively, the problem might be due to the fact that the file
                    507: starts with exactly 25 spaces.  For this reason, you should make sure
                    508: that you inform us of the exact contents of any file that is needed to
                    509: reproduce the bug.  What if the problem only occurs when you have typed
                    510: the `C-x C-a' command previously?  This is why we ask you to give the
                    511: exact sequence of characters you typed since starting to use Emacs.
                    512: 
                    513:    You should not even say "visit a file" instead of `C-x C-f' unless
                    514: you know that it makes no difference which visiting command is used.
                    515: Similarly, rather than saying "if I have three characters on the line,"
                    516: say "after I type `RET A B C' RET C-p," if that is the way you entered
                    517: the text.
                    518: 
                    519:    If you are not in Fundamental mode when the problem occurs, you
                    520: should say what mode you are in.
                    521: 
                    522:    If the manifestation of the bug is an Emacs error message, it is
                    523: important to report not just the text of the error message but a
                    524: backtrace showing how the Lisp program in Emacs arrived at the error. 
                    525: To make the backtrace, you must execute the Lisp expression `(setq
                    526: debug-on-error t)' before the error happens (that is to say, you must
                    527: execute that expression and then make the bug happen).  This causes the
                    528: Lisp debugger to run (*note Lisp Debug::.).  The debugger's backtrace
                    529: can be copied as text into the bug report.  This use of the debugger is
                    530: possible only if you know how to make the bug happen again.  Do note
                    531: the error message the first time the bug happens, so if you can't make
                    532: it happen again, you can report at least that.
                    533: 
                    534:    Check whether any programs you have loaded into the Lisp world,
                    535: including your `.emacs' file, set any variables that may affect the
                    536: functioning of Emacs.  Also, see whether the problem happens in a
                    537: freshly started Emacs without loading your `.emacs' file (start Emacs
                    538: with the `-q' switch to prevent loading the init file.)  If the problem
                    539: does NOT occur then, it is essential that we know the contents of any
                    540: programs that you must load into the Lisp world in order to cause the
                    541: problem to occur.
                    542: 
                    543:    If the problem does depend on an init file or other Lisp programs
                    544: that are not part of the standard Emacs system, then you should make
                    545: sure it is not a bug in those programs by complaining to their
                    546: maintainers first. After they verify that they are using Emacs in a way
                    547: that is supposed to work, they should report the bug.
                    548: 
                    549:    If you can tell us a way to cause the problem without visiting any
                    550: files, please do so.  This makes it much easier to debug.  If you do
                    551: need files, make sure you arrange for us to see their exact contents. 
                    552: For example, it can often matter whether there are spaces at the ends
                    553: of lines, or a newline after the last line in the buffer (nothing ought
                    554: to care whether the last line is terminated, but tell that to the bugs).
                    555: 
                    556:    The easy way to record the input to Emacs precisely is to write a
                    557: dribble file; execute the Lisp expression
                    558: 
                    559:      (open-dribble-file "~/dribble")
                    560: 
                    561: using `Meta-ESC' or from the `*scratch*' buffer just after starting
                    562: Emacs.  From then on, all Emacs input will be written in the specified
                    563: dribble file until the Emacs process is killed.
                    564: 
                    565:    For possible display bugs, it is important to report the terminal
                    566: type (the value of environment variable `TERM'), the complete termcap
                    567: entry for the terminal from `/etc/termcap' (since that file is not
                    568: identical on all machines), and the output that Emacs actually sent to
                    569: the terminal. The way to collect this output is to execute the Lisp
                    570: expression
                    571: 
                    572:      (open-termscript "~/termscript")
                    573: 
                    574: using `Meta-ESC' or from the `*scratch*' buffer just after starting
                    575: Emacs.  From then on, all output from Emacs to the terminal will be
                    576: written in the specified termscript file as well, until the Emacs
                    577: process is killed.  If the problem happens when Emacs starts up, put
                    578: this expression into your `.emacs' file so that the termscript file will
                    579: be open when Emacs displays the screen for the first time.  Be warned:
                    580: it is often difficult, and sometimes impossible, to fix a
                    581: terminal-dependent bug without access to a terminal of the type that
                    582: stimulates the bug.
                    583: 
                    584:    The address for reporting bugs is
                    585: 
                    586: GNU Emacs Bugs
                    587: Free Software Foundation
                    588: 675 Mass Ave
                    589: Cambridge, MA 02139
                    590: 
                    591: or send email either to `[email protected]' (Internet) or
                    592: to `uunet!prep.ai.mit.edu!bug-gnu-emacs' (Usenet).
                    593: 
                    594:    Once again, we do not promise to fix the bug; but if the bug is
                    595: serious, or ugly, or easy to fix, chances are we will want to.
                    596: 
                    597: 
                    598: File: emacs,  Node: Version 19,  Next: Manifesto,  Prev: Bugs,  Up: Top
                    599: 
                    600: Version 19 Antenews
                    601: *******************
                    602: 
                    603:    This chapter prematurely describes new features of Emacs 19, in
                    604: anticipation of its release.  We have included this so that the version
                    605: 18 manuals don't become obsolete as soon as Emacs 19 comes out.  This
                    606: list mentions only features that would belong in `The GNU Emacs
                    607: Manual'; changes relevant to Emacs Lisp programming will be documented
                    608: in the next revision of `The GNU Emacs Lisp Manual'.
                    609: 
                    610: * Menu:
                    611: 
                    612: * Basic Changes::        Changes every user must know.
                    613: * New Facilities::       Changes every user will want to know.
                    614: * Binding Changes::      Ordinary commands that have been moved.  Important!.
                    615: * Changed Commands::     Ordinary commands that have new features.  Important!
                    616: * M-x Changes::                  Changes in commands you run with `M-x'.  Important!
                    617: * New Commands::         Commands that have been added
                    618:                            that we expect many users to want to use.
                    619: * Search Changes::       Changes in incremental search.  Some are important.
                    620: 
                    621: The rest of the changes you can pretty much ignore unless you are interested.
                    622: 
                    623: * Filling Changes::      Changes in fill commands.
                    624: * TeX Mode Changes::     Changes in the commands for editing TeX files
                    625:                            and running TeX.
                    626: * Shell Changes::        Major changes in all the modes that run subprograms.
                    627: * Spell Changes::        These commands now use ispell instead of spell.
                    628: * Tags Changes::         Changes in Tags facility.
                    629: * Mail Changes::         Changes in both Sendmail mode and Rmail mode.
                    630: * Info Changes::         New commands in Info.
                    631: * Dired Changes::        Powerful new features in Dired.
                    632: * GNUS::                 An alternative news reader.
                    633: * Calendar/Diary::       The calendar feature now lets you move to different
                    634:                            dates and convert to and from other calendars.
                    635:                          You can also display related entries from your diary
                    636:                            file.
                    637: * Version Control::      A convenient interface to RCS or SCCS.
                    638: * Emerge::               A new feature for merging files interactively.
                    639: * Debuggers::            Running debuggers (GDB, DBX, SDB) under Emacs.
                    640: * Other New Modes::      Miscellaneous new and changed major modes.
                    641: * Key Sequence Changes::  You can now bind key sequences that include function
                    642:                            keys and mouse clicks.
                    643: * Hook Changes::         Hook variables have been renamed more systematically.
                    644: 
                    645: 
                    646: File: emacs,  Node: Basic Changes,  Next: New Facilities,  Up: Version 19
                    647: 
                    648: Basic Changes
                    649: =============
                    650: 
                    651:    We have made changes to help Emacs use fewer resources and make it
                    652: less likely to become irreparably hung.  While these changes don't
                    653: alter the commands of Emacs, they are important enough to be worth
                    654: mentioning.
                    655: 
                    656:    You can quit with `C-g' while Emacs is waiting to read or write a
                    657: file--provided the operating system will allow you to interrupt the
                    658: system call that is hung.  (Unfortunately, most NFS implementations
                    659: won't allow interruption.)
                    660: 
                    661:    When you kill buffers, Emacs now returns memory to the operating
                    662: system, thus reducing the size of the Emacs process.  The space that
                    663: you free up by killing buffers can now be reused for other buffers no
                    664: matter what their sizes, or reused by other processes if Emacs doesn't
                    665: need it.
                    666: 
                    667: Multiple X Windows
                    668: ------------------
                    669: 
                    670:    When using X windows, you can now create more than one window at the
                    671: X level.  Each X window displays a "frame" which can contain one or
                    672: several Emacs windows.  Each frame has its own echo area and normally
                    673: its own minibuffer.  (To avoid confusion, we reserve the word "window"
                    674: for the subdivisions that Emacs implements, and never use it to refer
                    675: to a frame.)  The easiest way to create additional frames is with the
                    676: `C-x 5' prefix character (*note New Everyday Commands: New Commands.).
                    677: 
                    678:    Emacs windows can now have scroll bars; use the `scroll-bar-mode'
                    679: command to turn scroll bars on or off.  With no argument, it toggles the
                    680: use of scroll bars.  With an argument, it turns use of scroll bars on if
                    681: and only if the argument is positive.  This command applies to all
                    682: frames, including frames yet to be created.  (You can control scroll
                    683: bars on a frame by frame basis by writing a Lisp program.)
                    684: 
                    685: Undo Improvements
                    686: -----------------
                    687: 
                    688:    Undoing a deletion now puts the cursor position where it was just
                    689: before the deletion.
                    690: 
                    691: Auto Save Improvements
                    692: ----------------------
                    693: 
                    694:    Emacs now does garbage collection and auto saving while it is waiting
                    695: for input, which often avoids the need to do these things while you are
                    696: typing.  The variable `auto-save-timeout' says how many seconds Emacs
                    697: should wait, after you stop typing, before it does an auto save and
                    698: perhaps also a garbage collection.  (The actual time period varies also
                    699: according to the size of the buffer--longer for longer buffers, since
                    700: auto saving itself is slower for long buffers.)  This way, Emacs does
                    701: not interrupt or delay your typing.
                    702: 
                    703:    In Emacs 18, when auto saving detects that a buffer has shrunk
                    704: greatly, it refrains from auto saving that buffer and displays a
                    705: warning.  In version 19, it also turns off Auto Save mode in that
                    706: buffer, so that you won't get the same warning repeatedly.  If you
                    707: reenable Auto Save mode in that buffer, Emacs will start saving it
                    708: again despite the shrinkage.
                    709: 
                    710:    In Emacs 19, `revert-buffer' no longer offers to revert from the
                    711: latest auto-save file.  That option hasn't been very useful since the
                    712: change to keep more undo information.
                    713: 
                    714:    The command `recover-file' no longer turns off Auto Save mode.
                    715: 
                    716: File Local Variables
                    717: --------------------
                    718: 
                    719:    The user option for controlling whether files can set local
                    720: variables is called `enable-local-variables' in Emacs 19, rather than
                    721: `inhibit-local-variables'.  A value of `t' means local-variables lists
                    722: are obeyed; `nil' means they are ignored; anything else means query the
                    723: user.
                    724: 
                    725: 
                    726: File: emacs,  Node: New Facilities,  Next: Binding Changes,  Prev: Basic Changes,  Up: Version 19
                    727: 
                    728: New Basic Facilities
                    729: ====================
                    730: 
                    731:    You can now get back recent minibuffer inputs conveniently.  While in
                    732: the minibuffer, type `M-p' (`previous-history-element') to fetch the
                    733: next earlier minibuffer input, and use `M-n' (`next-history-element')
                    734: to fetch the next later input.
                    735: 
                    736:    There are also commands to search forward or backward through the
                    737: history.  As of this writing, they search for history elements that
                    738: match a regular expression that you specify with the minibuffer. `M-r'
                    739: (`previous-matching-history-element') searches older elements in the
                    740: history, while `M-s' (`next-matching-history-element') searches newer
                    741: elements.  By special dispensation, these commands can always use the
                    742: minibuffer to read their arguments even though you are already in the
                    743: minibuffer when you issue them.
                    744: 
                    745:    We may have changed the precise way these commands work by the time
                    746: you use Emacs 19.  Perhaps they will search for a match for the string
                    747: given so far in the minibuffer; perhaps they will search for a literal
                    748: match rather than a regular expression match; perhaps they will only
                    749: accept matches at the beginning of a history element; perhaps they will
                    750: read the string to search for incrementally like `C-s'.  We want to
                    751: choose an interface that is convenient, flexible and natural, and these
                    752: goals are somewhat contradictory.  To find out what interface is
                    753: actually available, type `C-h f previous-matching-history-element'.
                    754: 
                    755:    The history feature is available for all uses of the minibuffer, but
                    756: there are separate history lists for different kinds of input.  For
                    757: example, there is a list for file names, used by all the commands that
                    758: read file names.  There is a list for arguments of commands like
                    759: `query-replace'.  There are also very specific history lists, such as
                    760: the one that `compile' uses for compilation commands.
                    761: 
                    762: Remote File Access
                    763: ------------------
                    764: 
                    765:    You can refer to files on other machines using a special file name
                    766: syntax:
                    767: 
                    768:      /HOST:FILENAME
                    769:      /USER@HOST:FILENAME
                    770: 
                    771:    When you do this, Emacs uses the FTP program to read and write files
                    772: on the specified host.  It logs in through FTP using your user name or
                    773: the name USER.  It may ask you for a password from time to time; this
                    774: is used for logging in on HOST.
                    775: 
                    776: Using Flow Control
                    777: ------------------
                    778: 
                    779:    There is now a convenient way to enable flow control when your
                    780: terminal or your connection won't work without it.  Suppose you want to
                    781: do this on VT-100 and H19 terminals; put the following in your `.emacs'
                    782: file:
                    783: 
                    784:      (evade-flow-control-on "vt100" "h19")
                    785: 
                    786:    When flow control is enabled, you must type `C-\' to get the effect
                    787: of a `C-s', and type `C-^' to get the effect of a `C-q'.
                    788: 
                    789: Controlling Backup File Names
                    790: -----------------------------
                    791: 
                    792:    The default setting of the Lisp variable `version-control' now comes
                    793: from the environment variable `VERSION_CONTROL'.  Thus, you can select
                    794: a style of backup file naming for Emacs and other GNU utilities all
                    795: together.
                    796: 
                    797: 
                    798: File: emacs,  Node: Binding Changes,  Next: Changed Commands,  Prev: New Facilities,  Up: Version 19
                    799: 
                    800: Changed Key Bindings
                    801: ====================
                    802: 
                    803: `M-{'
                    804:      This is the new key sequence for `backward-paragraph'.  The old key
                    805:      sequence for this, `M-[', is now undefined by default.
                    806: 
                    807:      The reason for this change is to avoid conflict with the sequences
                    808:      that function keys send on most terminals.
                    809: 
                    810: `M-}'
                    811:      This is the new key sequence for `forward-paragraph'.  The old key
                    812:      sequence for this, `M-]', is now undefined by default.
                    813: 
                    814:      We changed this to go along with `M-{'.
                    815: 
                    816: `C-x C-u'
                    817: `C-x C-l'
                    818:      The two commands, `C-x C-u' (`upcase-region') and `C-x C-l'
                    819:      (`downcase-region'), are now disabled by default; these keys seem
                    820:      to be often hit by accident, and can be quite destructive if their
                    821:      effects are not noticed immediately.
                    822: 
                    823: `C-x 3'
                    824:      `C-x 3' is now the key binding for `split-window-horizontally',
                    825:      which splits a window into two side-by-side windows.  This used to
                    826:      be `C-x 5'.
                    827: 
                    828: ``C-x 4 C-o''
                    829:      This key now runs `display-buffer', which displays a specified
                    830:      buffer in another window without selecting it.
                    831: 
                    832: `M-g'
                    833:      `M-g' is now undefined.  It used to run the command `fill-region'.
                    834:      This command used to be run more often by mistake than on purpose.
                    835: 
                    836: `C-x a'
                    837: `C-x n'
                    838: `C-x r'
                    839:      Three new prefix keys have been created to make many of the `C-x'
                    840:      commands more systematic: `C-x a', `C-x n' and `C-x r'. `C-x a' is
                    841:      used for abbreviation commands, `C-x n' for commands pertaining to
                    842:      narrowing, and `C-x r' for register and rectangle commands.  These
                    843:      are the new bindings, in detail:
                    844: 
                    845:     `C-x a l'
                    846:           `add-mode-abbrev' (previously `C-x C-a').
                    847: 
                    848:     `C-x a g'
                    849:           `add-global-abbrev' (previously `C-x +').
                    850: 
                    851:     `C-x a i g'
                    852:           `inverse-add-mode-abbrev' (previously `C-x C-h').
                    853: 
                    854:     `C-x a i l'
                    855:           `inverse-add-global-abbrev' (previously `C-x -').
                    856: 
                    857:     `C-x a e'
                    858:           `expand-abbrev' (previously `C-x '').
                    859: 
                    860:     `C-x n n'
                    861:           `narrow-to-region' (previously `C-x n').
                    862: 
                    863:     `C-x n p'
                    864:           `narrow-to-page' (previously `C-x p').
                    865: 
                    866:     `C-x n w'
                    867:           `widen' (previously `C-x w').
                    868: 
                    869:     `C-x r C-SPC'
                    870:           `point-to-register' (previously `C-x /').
                    871: 
                    872:     `C-x r SPC'
                    873:           Also `point-to-register' (previously `C-x /').
                    874: 
                    875:     `C-x r j'
                    876:           `jump-to-register' (previously `C-x j').
                    877: 
                    878:     `C-x r s'
                    879:           `copy-to-register' (previously `C-x x').
                    880: 
                    881:     `C-x r i'
                    882:           `insert-register' (previously `C-x g').
                    883: 
                    884:     `C-x r r'
                    885:           `copy-rectangle-to-register' (previously `C-x r').
                    886: 
                    887:     `C-x r k'
                    888:           `kill-rectangle' (no previous key binding).
                    889: 
                    890:     `C-x r y'
                    891:           `yank-rectangle' (no previous key binding).
                    892: 
                    893:     `C-x r o'
                    894:           `open-rectangle' (no previous key binding).
                    895: 
                    896:     `C-x r f'
                    897:           `frame-configuration-to-register' (a new command) saves the
                    898:           state of all windows in all frames. Use `C-x r j' to restore
                    899:           the configuration.
                    900: 
                    901:     `C-x r w'
                    902:           `window-configuration-to-register' (a new command) saves the
                    903:           state of all windows in the selected  frame. Use `C-x r j' to
                    904:           restore the configuration.
                    905: 
                    906:      The old key bindings `C-x /', `C-x j', `C-x x' and `C-x g' have
                    907:      not yet been removed.  The other old key bindings listed have been
                    908:      removed.  The old key binding `C-x a', which was
                    909:      `append-to-buffer', was removed to make way for a prefix key; now
                    910:      `append-to-buffer' has no keybinding.
                    911: 
                    912: `C-x v'
                    913:      `C-x v' is a new prefix character, used for version control
                    914:      commands. *Note Version Control::.
                    915: 
                    916: 
                    917: File: emacs,  Node: Changed Commands,  Next: M-x Changes,  Prev: Binding Changes,  Up: Version 19
                    918: 
                    919: Changed Everyday Commands
                    920: =========================
                    921: 
                    922: `C-o'
                    923:      When you have a fill prefix, the command `C-o' inserts the prefix
                    924:      on the newly created line.
                    925: 
                    926: `M-^'
                    927:      When you have a fill prefix, the command `M-^' deletes the prefix
                    928:      (if it occurs) after the newline that it deletes.
                    929: 
                    930: `M-z'
                    931:      The `M-z' command (`zap-to-char') now kills through the target
                    932:      character.  In version 18, it killed up to but not including the
                    933:      target character.
                    934: 
                    935: `M-!'
                    936:      The command `M-!' (`shell-command') now runs the specified shell
                    937:      command asynchronously if it ends in `&', just as the shell does.
                    938: 
                    939: `C-x 2'
                    940:      The `C-x 2' command (`split-window-vertically') now tries to avoid
                    941:      scrolling by putting point in whichever window happens to contain
                    942:      the screen line the cursor is already on.  If you don't like this,
                    943:      you can turn it off by setting `split-window-keep-point' to `nil'.
                    944: 
                    945: `C-x s'
                    946:      The `C-x s' command (`save-some-buffers') now gives you more
                    947:      options when it asks whether to save a particular buffer.  The
                    948:      options are analogous to those of `query-replace'.  Here they are:
                    949: 
                    950:     `y'
                    951:           Save this buffer and ask about the rest of the buffers.
                    952: 
                    953:     `n'
                    954:           Don't save this buffer, but ask about the rest of the buffers.
                    955: 
                    956:     `!'
                    957:           Save this buffer and all the rest with no more questions.
                    958: 
                    959:     `ESC'
                    960:           Terminate `save-some-buffers' without any more saving.
                    961: 
                    962:     `.'
                    963:           Save only this buffer, then exit `save-some-buffers' without
                    964:           even asking about other buffers.
                    965: 
                    966:     `C-r'
                    967:           View the buffer that you are currently being asked about. 
                    968:           When you exit View mode, you get back to `save-some-buffers',
                    969:           which asks the question again.
                    970: 
                    971:     `C-h'
                    972:           Display a help message about these options.
                    973: 
                    974: `C-x C-v'
                    975:      This command (`find-alternate-file') now inserts the entire current
                    976:      file name in the minibuffer.  This is convenient if you made a
                    977:      small mistake in typing it.  Point goes after the last slash,
                    978:      before the last file name component, so if you want to replace it
                    979:      entirely, you can use `C-k' right away to delete it.
                    980: 
                    981: `C-M-f'
                    982:      Expression and list commands such as `C-M-f' now ignore parentheses
                    983:      within comments in Lisp mode.
                    984: 
                    985: 
                    986: File: emacs,  Node: M-x Changes,  Next: New Commands,  Prev: Changed Commands,  Up: Version 19
                    987: 
                    988: Changes in Common `M-x' Commands
                    989: ================================
                    990: 
                    991: `M-x make-symbolic-link'
                    992:      This command now does not expand its second argument.  This lets
                    993:      you make a link with a target that is a relative file name.
                    994: 
                    995: `M-x add-change-log-entry'
                    996: `C-x 4 a'
                    997:      These commands now automatically insert the name of the file and
                    998:      often the name of the function that you changed.  They also handle
                    999:      grouping of entries.
                   1000: 
                   1001:      There is now a special major mode for editing `ChangeLog' files.
                   1002:      It makes filling work conveniently.  Each bunch of grouped entries
                   1003:      is one paragraph, and each collection of entries from one person
                   1004:      on one day is considered a page.
                   1005: 
                   1006: `M-x compare-windows'
                   1007:      With a prefix argument, `compare-windows' ignores changes in
                   1008:      whitespace.  If the variable `compare-ignore-case' is non-`nil',
                   1009:      it ignores differences in case as well.
                   1010: 
                   1011: `M-x view-buffer'
                   1012: `M-x view-file'
                   1013:      The View commands (such as `M-x view-buffer' and `M-x view-file')
                   1014:      no longer use recursive edits; instead, they switch temporarily to
                   1015:      a different major mode (View mode) specifically designed for
                   1016:      moving around through a buffer without editing it.
                   1017: 
                   1018: `M-x manual-entry'
                   1019:      `M-x manual-entry' now uses View mode for the buffer showing the
                   1020:      man page.
                   1021: 
                   1022: `M-x compile'
                   1023:      You can repeat any previous `compile' conveniently using the
                   1024:      minibuffer history commands, while in the minibuffer entering the
                   1025:      compilation command.
                   1026: 
                   1027:      While a compilation is going on, the string `Compiling' appears in
                   1028:      the mode line.  When this string disappears, the compilation is
                   1029:      finished.
                   1030: 
                   1031:      The buffer of compiler messages is in Compilation mode.  This mode
                   1032:      provides the keys SPC and DEL to scroll by screenfuls, and `M-n'
                   1033:      and `M-p' to move to the next or previous error message. You can
                   1034:      also use `M-{' and `M-}' to move up or down to an error message
                   1035:      for a different source file.  Use `C-c C-c' on any error message
                   1036:      to find the corresponding source code.
                   1037: 
                   1038:      Emacs 19 has a more general parser for compiler messages.  For
                   1039:      example, it can understand messages from lint, and from certain C
                   1040:      compilers whose error message format is unusual.
                   1041: 
                   1042: 
                   1043: File: emacs,  Node: New Commands,  Next: Search Changes,  Prev: M-x Changes,  Up: Version 19
                   1044: 
                   1045: New Everyday Commands
                   1046: =====================
                   1047: 
                   1048: `C-z'
                   1049:      When you are using X windows, `C-z' (`iconify-frame') now
                   1050:      iconifies the current frame.
                   1051: 
                   1052: `C-M-l'
                   1053:      The `C-M-l' command (`reposition-window') scrolls the current
                   1054:      window heuristically in a way designed to get useful information
                   1055:      onto the screen.  For example, in a Lisp file, this command tries
                   1056:      to get the entire current defun onto the screen if possible.
                   1057: 
                   1058: `C-M-r'
                   1059:      The `C-M-r' key now runs the command `isearch-backward-regexp',
                   1060:      which does reverse incremental regexp search.
                   1061: 
                   1062: `C-x 5'
                   1063:      The prefix key `C-x 5' is analogous to `C-x 4', with parallel
                   1064:      subcommands.  The difference is that `C-x 5' commands create a new
                   1065:      frame rather than just a new window.
                   1066: 
                   1067: `C-x 5 C-f'
                   1068: `C-x 5 b'
                   1069:      These new commands switch to a specified file or buffer in a new
                   1070:      frame (when using X windows).  The commands' names are
                   1071:      `find-file-other-frame' and `switch-to-buffer-other-frame'.
                   1072: 
                   1073: `C-x 5 m'
                   1074:      Start outgoing mail in another frame (`mail-other-frame').
                   1075: 
                   1076: `C-x 5 .'
                   1077:      Find a tag in another frame (`find-tag-other-frame').
                   1078: 
                   1079: `C-x 4 r'
                   1080:      This is now `find-file-read-only-other-window'.
                   1081: 
                   1082: arrow keys
                   1083:      The arrow keys now have default bindings to move in the appropriate
                   1084:      directions.
                   1085: 
                   1086: `C-h C-f'
                   1087: `C-h C-k'
                   1088:      These new help commands enter Info and display the node for a given
                   1089:      Emacs function name or key sequence, respectively.
                   1090: 
                   1091: `M-a'
                   1092: `M-e'
                   1093:      In C mode, `M-a' and `M-e' now move by complete C statements
                   1094:      (`c-beginning-of-statement' and `c-end-of-statement').
                   1095: 
                   1096: `M-q'
                   1097:      `M-q' in C mode now runs `c-fill-paragraph', which is designed for
                   1098:      filling C comments.  (We assume you don't want to fill the actual C
                   1099:      code in a C program.)
                   1100: 
                   1101: `M-x c-up-conditional'
                   1102:      In C mode, `c-up-conditional' moves back to the containing
                   1103:      preprocessor conditional, setting the mark where point was
                   1104:      previously.
                   1105: 
                   1106:      A prefix argument acts as a repeat count.  With a negative
                   1107:      argument, this command moves forward to the end of the containing
                   1108:      preprocessor conditional.  When going backwards, `#elif' acts like
                   1109:      `#else' followed by `#if'.  When going forwards, `#elif' is
                   1110:      ignored.
                   1111: 
                   1112: `M-x comment-region'
                   1113:      The `comment-region' command adds comment delimiters to the lines
                   1114:      that start in the region, thus commenting them out.  With a
                   1115:      negative argument, it deletes comment delimiters from the lines in
                   1116:      the region--this is the inverse of the effect of `comment-region'
                   1117:      without an argument.
                   1118: 
                   1119:      With a positive argument, `comment-region' adds comment delimiters
                   1120:      but duplicates the last character of the comment start sequence as
                   1121:      many times as the argument specifies.  This is a way of calling
                   1122:      attention to the comment.  In Lisp, you should use an argument of
                   1123:      at least two, because the indentation convention for single
                   1124:      semicolon comments does not leave them at the beginning of a line.
                   1125: 
                   1126: `M-x super-apropos'
                   1127:      This command is like `apropos' except that it searches for a
                   1128:      regular expression instead of merely a substring.
                   1129: 
                   1130:      If you use a prefix argument (regardless of its value) with
                   1131:      `apropos' or `super-apropos', they also search documentation
                   1132:      strings for matches as well as symbol names.  The prefix argument
                   1133:      also controls looking up and printing the key bindings of all
                   1134:      commands.
                   1135: 
                   1136: `M-x diff'
                   1137:      This new command compares two files, displaying the differences in
                   1138:      an Emacs buffer.  The options for the `diff' program come from the
                   1139:      variable `diff-switches', whose value should be a string.
                   1140: 
                   1141:      The buffer of differences has Compilation mode as its major mode,
                   1142:      so you can use `C-x `' to visit successive changed locations in
                   1143:      the two source files, or you can move to a particular hunk of
                   1144:      changes and type `C-c C-c' to move to the corresponding source. 
                   1145:      You can also use the other special commands of Compilation mode:
                   1146:      SPC and DEL for scrolling, and `M-p' and `M-n' for cursor motion.
                   1147: 
                   1148: `M-x diff-backup'
                   1149:      The command `diff-backup' compares a specified file with its most
                   1150:      recent backup.  If you specify the name of a backup file,
                   1151:      `diff-backup' compares it with the source file that it is a backup
                   1152:      of.
                   1153: 
                   1154: 
                   1155: File: emacs,  Node: Search Changes,  Next: Filling Changes,  Prev: New Commands,  Up: Version 19
                   1156: 
                   1157: Changes in Incremental Search
                   1158: =============================
                   1159: 
                   1160:    The most important change in incremental search is that RET now
                   1161: terminates a search, and ESC does not.  The other changes are useful,
                   1162: but not vital to know about.
                   1163: 
                   1164:    * The character to terminate an incremental search is now RET.  This
                   1165:      is for compatibility with the way most other arguments are read.
                   1166: 
                   1167:      To search for a newline in an incremental search, type LFD (also
                   1168:      known as `C-j').
                   1169: 
                   1170:      (This change is somewhat of an experiment; it might be taken back
                   1171:      by the time Emacs 19 is really released.)
                   1172: 
                   1173:    * Incremental search now maintains a ring of previous search
                   1174:      strings.  Use `M-p' and `M-n' to move through the ring to pick a
                   1175:      search string to reuse.  These commands leave the selected search
                   1176:      ring element in the minibuffer, where you can edit it.  Type RET
                   1177:      to finish editing and search for the chosen string.
                   1178: 
                   1179:    * When there is an upper-case letter in the search string, then the
                   1180:      search is case sensitive.
                   1181: 
                   1182:    * Incremental search is now implemented as a major mode.  When you
                   1183:      type `C-s', it switches temporarily to a different keymap which
                   1184:      defines each key to do what it ought to do for incremental search.
                   1185:       This has next to no effect on the user-visible behavior of
                   1186:      searching, but makes it easier to customize that behavior.
                   1187: 
                   1188: 
                   1189: File: emacs,  Node: Filling Changes,  Next: TeX Mode Changes,  Prev: Search Changes,  Up: Version 19
                   1190: 
                   1191: Changes in Fill Commands
                   1192: ========================
                   1193: 
                   1194:    * `fill-individual-paragraphs' now has two modes.  Its default mode
                   1195:      is that any change in indentation starts a new paragraph.  The
                   1196:      alternate mode is that only separator lines separate paragraphs;
                   1197:      this can handle paragraphs with extra indentation on the first
                   1198:      line.  To select the alternate mode, set
                   1199:      `fill-individual-varying-indent' to a non-`nil' value.
                   1200: 
                   1201:    * Filling is now partially controlled by a new minor mode, Adaptive
                   1202:      Fill mode.  When this mode is enabled (and it is enabled by
                   1203:      default), if you use `fill-region-as-paragraph' on an indented
                   1204:      paragraph and you don't have a fill prefix, it uses the
                   1205:      indentation of the second line of the paragraph as the fill prefix.
                   1206: 
                   1207:      Adaptive Fill mode doesn't have much effect on `M-q' in most major
                   1208:      modes, because an indented line will probably count as a paragraph
                   1209:      starter and thus each line of an indented paragraph will be
                   1210:      considered a paragraph of its own.
                   1211: 
                   1212:    * `M-q' in C mode now runs `c-fill-paragraph', which is designed for
                   1213:      filling C comments.  (We assume you don't want to fill the actual C
                   1214:      code in a C program.)
                   1215: 
                   1216: 

unix.superglobalmegacorp.com

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