Annotation of GNUtools/emacs/info/emacs-12, revision 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.