Annotation of GNUtools/emacs/info/emacs-1, 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: Top,  Next: Distrib,  Up: (DIR)
        !            27: 
        !            28: The Emacs Editor
        !            29: ****************
        !            30: 
        !            31:    Emacs is the extensible, customizable, self-documenting real-time
        !            32: display editor.  This Info file describes how to edit with Emacs and
        !            33: some of how to customize it, but not how to extend it.
        !            34: 
        !            35: * Menu:
        !            36: 
        !            37: * Distrib::     How to get the latest Emacs distribution.
        !            38: * License::     The GNU General Public License gives you permission
        !            39:                to redistribute GNU Emacs on certain terms; and also
        !            40:                explains that there is no warranty.
        !            41: * Intro::       An introduction to Emacs concepts.
        !            42: * Glossary::    The glossary.
        !            43: * Version 19::  Changes coming in Emacs version 19, to be released.
        !            44: * Manifesto::   What's GNU?  Gnu's Not Unix!
        !            45: 
        !            46: Indexes, nodes containing large menus
        !            47: * Key Index::      An item for each standard Emacs key sequence.
        !            48: * Command Index::  An item for each command name.
        !            49: * Variable Index:: An item for each documented variable.
        !            50: * Concept Index::  An item for each concept.
        !            51: 
        !            52: Important General Concepts
        !            53: * Screen::      How to interpret what you see on the screen.
        !            54: * Characters::  Emacs's character sets for file contents and for keyboard.
        !            55: * Keys::        Key sequences: what you type to request one editing action.
        !            56: * Commands::    Commands: named functions run by key sequences to do editing.
        !            57: * Entering Emacs::    Starting Emacs from the shell.
        !            58: * Command Switches::  Hairy startup options.
        !            59: * Exiting::     Stopping or killing Emacs.
        !            60: * Basic::       The most basic editing commands.
        !            61: * Undo::        Undoing recently made changes in the text.
        !            62: * Minibuffer::  Entering arguments that are prompted for.
        !            63: * M-x::         Invoking commands by their names.
        !            64: * Help::        Commands for asking Emacs about its commands.
        !            65: 
        !            66: Important Text-Changing Commands
        !            67: * Mark::        The mark: how to delimit a "region" of text.
        !            68: * Killing::     Killing text.
        !            69: * Yanking::     Recovering killed text.  Moving text.
        !            70: * Accumulating Text::
        !            71:                 Other ways of copying text.
        !            72: * Rectangles::  Operating on the text inside a rectangle on the screen.
        !            73: * Registers::   Saving a text string or a location in the buffer.
        !            74: * Display::     Controlling what text is displayed.
        !            75: * Search::      Finding or replacing occurrences of a string.
        !            76: * Fixit::       Commands especially useful for fixing typos.
        !            77: 
        !            78: Larger Units of Text
        !            79: * Files::       All about handling files.
        !            80: * Buffers::     Multiple buffers; editing several files at once.
        !            81: * Windows::     Viewing two pieces of text at once.
        !            82: 
        !            83: Advanced Features
        !            84: * Major Modes:: Text mode vs. Lisp mode vs. C mode ...
        !            85: * Indentation:: Editing the white space at the beginnings of lines.
        !            86: * Text::        Commands and modes for editing English.
        !            87: * Programs::    Commands and modes for editing programs.
        !            88: * Compiling/Testing::
        !            89:                Compiling, running and debugging programs.
        !            90: * Abbrevs::     How to define text abbreviations to reduce
        !            91:                  the number of characters you must type.
        !            92: * Picture::     Editing pictures made up of characters
        !            93:                  using the quarter-plane screen model.
        !            94: * Sending Mail::Sending mail in Emacs.
        !            95: * Rmail::       Reading mail in Emacs.
        !            96: * Recursive Edit::
        !            97:                 A command can allow you to do editing
        !            98:                  "within the command".  This is called a
        !            99:                  `recursive editing level'.
        !           100: * Narrowing::   Restricting display and editing to a portion
        !           101:                  of the buffer.
        !           102: * Sorting::    Sorting lines, paragraphs or pages within Emacs.
        !           103: * Shell::       Executing shell commands from Emacs.
        !           104: * Hardcopy::   Printing buffers or regions.
        !           105: * Dissociated Press::  Dissociating text for fun.
        !           106: * Amusements::         Various games and hacks.
        !           107: * Emulation::         Emulating some other editors with Emacs.
        !           108: * Customization::      Modifying the behavior of Emacs.
        !           109: 
        !           110: Recovery from Problems.
        !           111: * Quitting::    Quitting and aborting.
        !           112: * Lossage::     What to do if Emacs is hung or malfunctioning.
        !           113: * Bugs::        How and when to report a bug.
        !           114: 
        !           115: Here are some other nodes which are really inferiors of the ones
        !           116: already listed, mentioned here so you can get to them in one step:
        !           117: 
        !           118: Subnodes of Screen
        !           119: * Point::      The place in the text where editing commands operate.
        !           120: * Echo Area::   Short messages appear at the bottom of the screen.
        !           121: * Mode Line::  Interpreting the mode line.
        !           122: 
        !           123: Subnodes of Basic
        !           124: * Blank Lines:: Commands to make or delete blank lines.
        !           125: * Continuation Lines:: Lines too wide for the screen.
        !           126: * Position Info::      What page, line, row, or column is point on?
        !           127: * Arguments::          Giving numeric arguments to commands.
        !           128: 
        !           129: Subnodes of Minibuffer
        !           130: * Minibuffer File::    Entering file names with the minibuffer.
        !           131: * Minibuffer Edit::    How to edit in the minibuffer.
        !           132: * Completion::  An abbreviation facility for minibuffer input.
        !           133: * Repetition::  Re-executing previous commands that used the minibuffer.
        !           134: 
        !           135: Subnodes of Mark
        !           136: * Setting Mark::       Commands to set the mark.
        !           137: * Using Region::       Summary of ways to operate on contents of the region.
        !           138: * Marking Objects::    Commands to put region around textual units.
        !           139: * Mark Ring::          Previous mark positions saved so you can go back there.
        !           140: 
        !           141: Subnodes of Yanking
        !           142: * Kill Ring::          Where killed text is stored.  Basic yanking.
        !           143: * Appending Kills::    Several kills in a row all yank together.
        !           144: * Earlier Kills::      Yanking something killed some time ago.
        !           145: 
        !           146: Subnodes of Registers
        !           147: * RegPos::             Saving positions in registers.
        !           148: * RegText::            Saving text in registers.
        !           149: * RegRect::            Saving rectangles in registers.
        !           150: 
        !           151: Subnodes of Display
        !           152: * Scrolling::             Moving text up and down in a window.
        !           153: * Horizontal Scrolling::   Moving text left and right in a window.
        !           154: * Selective Display::      Hiding lines with lots of indentation.
        !           155: * Display Vars::           Information on variables for customizing display.
        !           156: 
        !           157: Subnodes of Search
        !           158: * Incremental Search::     Search happens as you type the string.
        !           159: * Nonincremental Search::  Specify entire string and then search.
        !           160: * Word Search::           Search for sequence of words.
        !           161: * Regexp Search::         Search for match for a regexp.
        !           162: * Regexps::               Syntax of regular expressions.
        !           163: * Search Case::                   To ignore case while searching, or not.
        !           164: * Replace::               Search, and replace some or all matches.
        !           165: * Unconditional Replace::  Everything about replacement except for querying.
        !           166: * Query Replace::          How to use querying.
        !           167: * Other Repeating Search:: Operating on all matches for some regexp.
        !           168: 
        !           169: Subnodes of Fixit
        !           170: * Kill Errors:: Commands to kill a batch of recently entered text.
        !           171: * Transpose::   Exchanging two characters, words, lines, lists...
        !           172: * Fixing Case:: Correcting case of last word entered.
        !           173: * Spelling::    Apply spelling checker to a word, or a whole file.
        !           174: 
        !           175: Subnodes of Files
        !           176: * File Names::  How to type and edit file name arguments.
        !           177: * Visiting::    Visiting a file prepares Emacs to edit the file.
        !           178: * Saving::      Saving makes your changes permanent.
        !           179: * Backup::      How Emacs saves the old version of your file.
        !           180: * Interlocking::How Emacs protects against simultaneous editing
        !           181:                  of one file by two users.
        !           182: * Reverting::   Reverting cancels all the changes not saved.
        !           183: * Auto Save::   Auto Save periodically protects against loss of data.
        !           184: * ListDir::     Listing the contents of a file directory.
        !           185: * Dired::       "Editing" a directory to delete, rename, etc.
        !           186:                  the files in it.
        !           187: * Misc File Ops:: Other things you can do on files.
        !           188: 
        !           189: Subnodes of Buffers
        !           190: * Select Buffer::   Creating a new buffer or reselecting an old one.
        !           191: * List Buffers::    Getting a list of buffers that exist.
        !           192: * Misc Buffer::     Renaming; changing read-only status.
        !           193: * Kill Buffer::     Killing buffers you no longer need.
        !           194: * Several Buffers:: How to go through the list of all buffers
        !           195:                      and operate variously on several of them.
        !           196: 
        !           197: Subnodes of Windows
        !           198: * Basic Window::    Introduction to Emacs windows.
        !           199: * Split Window::    New windows are made by splitting existing windows.
        !           200: * Other Window::    Moving to another window or doing something to it.
        !           201: * Pop Up Window::   Finding a file or buffer in another window.
        !           202: * Change Window::   Deleting windows and changing their sizes.
        !           203: 
        !           204: Subnodes of Indentation
        !           205: * Indentation Commands:: Various commands and techniques for indentation.
        !           206: * Tab Stops::   You can set arbitrary "tab stops" and then
        !           207:                  indent to the next tab stop when you want to.
        !           208: * Just Spaces:: You can request indentation using just spaces.
        !           209: 
        !           210: Subnodes of Text
        !           211: * Text Mode::   The major mode for editing text files.
        !           212: * Nroff Mode::  The major mode for editing input to the formatter nroff.
        !           213: * TeX Mode::    The major mode for editing input to the formatter TeX.
        !           214: * Texinfo Mode::The major mode for editing input to the formatter Texinfo.
        !           215: * Outline Mode::The major mode for editing outlines.
        !           216: * Words::       Moving over and killing words.
        !           217: * Sentences::   Moving over and killing sentences.
        !           218: * Paragraphs:: Moving over paragraphs.
        !           219: * Pages::      Moving over pages.
        !           220: * Filling::     Filling or justifying text
        !           221: * Case::        Changing the case of text
        !           222: 
        !           223: Subnodes of Programs
        !           224: * Program Modes::       Major modes for editing programs.
        !           225: * Lists::       Expressions with balanced parentheses.
        !           226:                  There are editing commands to operate on them.
        !           227: * Defuns::      Each program is made up of separate functions.
        !           228:                  There are editing commands to operate on them.
        !           229: * Grinding::    Adjusting indentation to show the nesting.
        !           230: * Matching::    Insertion of a close-delimiter flashes matching open.
        !           231: * Comments::    Inserting, killing and aligning comments.
        !           232: * Balanced Editing::    Inserting two matching parentheses at once, etc.
        !           233: * Lisp Completion::     Completion on symbol names in Lisp code.
        !           234: * Documentation::       Getting documentation of functions you plan to call.
        !           235: * Change Log::  Maintaining a change history for your program.
        !           236: * Tags::        Go direct to any function in your program in one
        !           237:                  command.  Tags remembers which file it is in.
        !           238: * Fortran::    Fortran mode and its special features.
        !           239: 
        !           240: Subnodes of Compiling/Testing
        !           241: * Compilation::       Compiling programs in languages other than Lisp
        !           242:                        (C, Pascal, etc.)
        !           243: * Lisp Modes::        Various modes for editing Lisp programs, with
        !           244:                        different facilities for running the Lisp programs.
        !           245: * Lisp Libraries::    Creating Lisp programs to run in Emacs.
        !           246: * Lisp Interaction::  Executing Lisp in an Emacs buffer.
        !           247: * Lisp Eval::         Executing a single Lisp expression in Emacs.
        !           248: * Lisp Debug::        Debugging Lisp programs running in Emacs.
        !           249: * External Lisp::     Communicating through Emacs with a separate Lisp.
        !           250: 
        !           251: Subnodes of Abbrevs
        !           252: * Defining Abbrevs::  Defining an abbrev, so it will expand when typed.
        !           253: * Expanding Abbrevs:: Controlling expansion: prefixes, canceling expansion.
        !           254: * Editing Abbrevs::   Viewing or editing the entire list of defined abbrevs.
        !           255: * Saving Abbrevs::    Saving the entire list of abbrevs for another session.
        !           256: * Dynamic Abbrevs::   Abbreviations for words already in the buffer.
        !           257: 
        !           258: Subnodes of Picture
        !           259: * Basic Picture::     Basic concepts and simple commands of Picture mode.
        !           260: * Insert in Picture:: Controlling direction of cursor motion
        !           261:                        after "self-inserting" characters.
        !           262: * Tabs in Picture::   Various features for tab stops and indentation.
        !           263: * Rectangles in Picture:: Clearing and superimposing rectangles.
        !           264: 
        !           265: Subnodes of Sending Mail
        !           266: * Mail Format::       Format of the mail being composed.
        !           267: * Mail Headers::      Details of allowed mail header fields.
        !           268: * Mail Mode::         Special commands for editing mail being composed.
        !           269: 
        !           270: Subnodes of Rmail
        !           271: * Rmail Scrolling::   Scrolling through a message.
        !           272: * Rmail Motion::      Moving to another message.
        !           273: * Rmail Deletion::    Deleting and expunging messages.
        !           274: * Rmail Inbox::       How mail gets into the Rmail file.
        !           275: * Rmail Files::       Using multiple Rmail files.
        !           276: * Rmail Output::      Copying message out to files.
        !           277: * Rmail Labels::      Classifying messages by labeling them.
        !           278: * Rmail Summary::     Summaries show brief info on many messages.
        !           279: * Rmail Reply::       Sending replies to messages you are viewing.
        !           280: * Rmail Editing::     Editing message text and headers in Rmail.
        !           281: * Rmail Digest::      Extracting the messages from a digest message.
        !           282: 
        !           283: Subnodes of Shell
        !           284: * Single Shell::      Commands to run one shell command and return.
        !           285: * Interactive Shell:: Permanent shell taking input via Emacs.
        !           286: * Shell Mode::        Special Emacs commands used with permanent shell.
        !           287: 
        !           288: Subnodes of Customization
        !           289: * Minor Modes::       Each minor mode is one feature you can turn on
        !           290:                        independently of any others.
        !           291: * Variables::         Many Emacs commands examine Emacs variables
        !           292:                        to decide what to do; by setting variables,
        !           293:                        you can control their functioning.
        !           294: * Examining::         Examining or setting one variable's value.
        !           295: * Edit Options::      Examining or editing list of all variables' values.
        !           296: * Locals::            Per-buffer values of variables.
        !           297: * File Variables::    How files can specify variable values.
        !           298: * Keyboard Macros::   A keyboard macro records a sequence of keystrokes
        !           299:                        to be replayed with a single command.
        !           300: * Key Bindings::      The keymaps say what command each key runs.
        !           301:                        By changing them, you can "redefine keys".
        !           302: * Keymaps::           Definition of the keymap data structure.
        !           303: * Rebinding::         How to redefine one key's meaning conveniently.
        !           304: * Disabling::         Disabling a command means confirmation is required
        !           305:                        before it can be executed.  This is done to protect
        !           306:                        beginners from surprises.
        !           307: * Syntax::            The syntax table controls how words and expressions
        !           308:                        are parsed.
        !           309: * Init File::         How to write common customizations in the `.emacs' file.
        !           310: 
        !           311: Subnodes of Lossage (and recovery)
        !           312: * Stuck Recursive::   `[...]' in mode line around the parentheses.
        !           313: * Screen Garbled::    Garbage on the screen.
        !           314: * Text Garbled::      Garbage in the text.
        !           315: * Unasked-for Search::Spontaneous entry to incremental search.
        !           316: * Emergency Escape::  Emergency escape--
        !           317:                        What to do if Emacs stops responding.
        !           318: * Total Frustration:: When you are at your wits' end.
        !           319: 
        !           320: 
        !           321: File: emacs,  Node: Distrib,  Next: License,  Prev: Top,  Up: Top
        !           322: 
        !           323: Distribution
        !           324: ************
        !           325: 
        !           326:    GNU Emacs is "free"; this means that everyone is free to use it and
        !           327: free to redistribute it on a free basis.  GNU Emacs is not in the public
        !           328: domain; it is copyrighted and there are restrictions on its
        !           329: distribution, but these restrictions are designed to permit everything
        !           330: that a good cooperating citizen would want to do.  What is not allowed
        !           331: is to try to prevent others from further sharing any version of GNU
        !           332: Emacs that they might get from you.  The precise conditions are found in
        !           333: the GNU General Public License that comes with Emacs and also appears
        !           334: following this section.
        !           335: 
        !           336:    The easiest way to get a copy of GNU Emacs is from someone else who
        !           337: has it. You need not ask for permission to do so, or tell any one else;
        !           338: just copy it.
        !           339: 
        !           340:    If you have access to the Internet, you can get the latest
        !           341: distribution version of GNU Emacs from host `prep.ai.mit.edu' using
        !           342: anonymous login.  See the file `/u2/emacs/GETTING.GNU.SOFTWARE' on that
        !           343: host to find out about your options for copying and which files to use.
        !           344: 
        !           345:    You may also receive GNU Emacs when you buy a computer.  Computer
        !           346: manufacturers are free to distribute copies on the same terms that
        !           347: apply to everyone else.  These terms require them to give you the full
        !           348: sources, including whatever changes they may have made, and to permit
        !           349: you to redistribute the GNU Emacs received from them under the usual
        !           350: terms of the General Public License.  In other words, the program must
        !           351: be free for you when you get it, not just free for the manufacturer.
        !           352: 
        !           353:    If you cannot get a copy in any of those ways, you can order one
        !           354: from the Free Software Foundation.  Though Emacs itself is free, our
        !           355: distribution service is not.  An order form is included at the end of
        !           356: manuals printed by the Foundation.  It is also included in the file
        !           357: `etc/DISTRIB' in the Emacs distribution.  For further information,
        !           358: write to
        !           359: 
        !           360:      Free Software Foundation
        !           361:      675 Mass Ave
        !           362:      Cambridge, MA 02139
        !           363:      USA
        !           364: 
        !           365:    The income from distribution fees goes to support the foundation's
        !           366: purpose: the development of more free software to distribute just like
        !           367: GNU Emacs.
        !           368: 
        !           369:    If you find GNU Emacs useful, please send a donation to the Free
        !           370: Software Foundation.  This will help support development of the rest of
        !           371: the GNU system, and other useful software beyond that.  Your donation
        !           372: is tax deductible.
        !           373: 
        !           374: 
        !           375: File: emacs,  Node: License,  Next: Intro,  Prev: Distrib,  Up: Top
        !           376: 
        !           377: GNU GENERAL PUBLIC LICENSE
        !           378: **************************
        !           379: 
        !           380:                        Version 1, February 1989
        !           381: 
        !           382:      Copyright (C) 1989 Free Software Foundation, Inc.
        !           383:      675 Mass Ave, Cambridge, MA 02139, USA
        !           384:      
        !           385:      Everyone is permitted to copy and distribute verbatim copies
        !           386:      of this license document, but changing it is not allowed.
        !           387: 
        !           388: Preamble
        !           389: ========
        !           390: 
        !           391:    The license agreements of most software companies try to keep users
        !           392: at the mercy of those companies.  By contrast, our General Public
        !           393: License is intended to guarantee your freedom to share and change free
        !           394: software--to make sure the software is free for all its users.  The
        !           395: General Public License applies to the Free Software Foundation's
        !           396: software and to any other program whose authors commit to using it. You
        !           397: can use it for your programs, too.
        !           398: 
        !           399:    When we speak of free software, we are referring to freedom, not
        !           400: price.  Specifically, the General Public License is designed to make
        !           401: sure that you have the freedom to give away or sell copies of free
        !           402: software, that you receive source code or can get it if you want it,
        !           403: that you can change the software or use pieces of it in new free
        !           404: programs; and that you know you can do these things.
        !           405: 
        !           406:    To protect your rights, we need to make restrictions that forbid
        !           407: anyone to deny you these rights or to ask you to surrender the rights.
        !           408: These restrictions translate to certain responsibilities for you if you
        !           409: distribute copies of the software, or if you modify it.
        !           410: 
        !           411:    For example, if you distribute copies of a such a program, whether
        !           412: gratis or for a fee, you must give the recipients all the rights that
        !           413: you have.  You must make sure that they, too, receive or can get the
        !           414: source code.  And you must tell them their rights.
        !           415: 
        !           416:    We protect your rights with two steps: (1) copyright the software,
        !           417: and (2) offer you this license which gives you legal permission to copy,
        !           418: distribute and/or modify the software.
        !           419: 
        !           420:    Also, for each author's protection and ours, we want to make certain
        !           421: that everyone understands that there is no warranty for this free
        !           422: software.  If the software is modified by someone else and passed on, we
        !           423: want its recipients to know that what they have is not the original, so
        !           424: that any problems introduced by others will not reflect on the original
        !           425: authors' reputations.
        !           426: 
        !           427:    The precise terms and conditions for copying, distribution and
        !           428: modification follow.
        !           429: 
        !           430:                          TERMS AND CONDITIONS
        !           431: 
        !           432:   1. This License Agreement applies to any program or other work which
        !           433:      contains a notice placed by the copyright holder saying it may be
        !           434:      distributed under the terms of this General Public License.  The
        !           435:      "Program", below, refers to any such program or work, and a "work
        !           436:      based on the Program" means either the Program or any work
        !           437:      containing the Program or a portion of it, either verbatim or with
        !           438:      modifications.  Each licensee is addressed as "you".
        !           439: 
        !           440:   2. You may copy and distribute verbatim copies of the Program's source
        !           441:      code as you receive it, in any medium, provided that you
        !           442:      conspicuously and appropriately publish on each copy an
        !           443:      appropriate copyright notice and disclaimer of warranty; keep
        !           444:      intact all the notices that refer to this General Public License
        !           445:      and to the absence of any warranty; and give any other recipients
        !           446:      of the Program a copy of this General Public License along with
        !           447:      the Program.  You may charge a fee for the physical act of
        !           448:      transferring a copy.
        !           449: 
        !           450:   3. You may modify your copy or copies of the Program or any portion of
        !           451:      it, and copy and distribute such modifications under the terms of
        !           452:      Paragraph 1 above, provided that you also do the following:
        !           453: 
        !           454:         * cause the modified files to carry prominent notices stating
        !           455:           that you changed the files and the date of any change; and
        !           456: 
        !           457:         * cause the whole of any work that you distribute or publish,
        !           458:           that in whole or in part contains the Program or any part
        !           459:           thereof, either with or without modifications, to be licensed
        !           460:           at no charge to all third parties under the terms of this
        !           461:           General Public License (except that you may choose to grant
        !           462:           warranty protection to some or all third parties, at your
        !           463:           option).
        !           464: 
        !           465:         * If the modified program normally reads commands interactively
        !           466:           when run, you must cause it, when started running for such
        !           467:           interactive use in the simplest and most usual way, to print
        !           468:           or display an announcement including an appropriate copyright
        !           469:           notice and a notice that there is no warranty (or else,
        !           470:           saying that you provide a warranty) and that users may
        !           471:           redistribute the program under these conditions, and telling
        !           472:           the user how to view a copy of this General Public License.
        !           473: 
        !           474:         * You may charge a fee for the physical act of transferring a
        !           475:           copy, and you may at your option offer warranty protection in
        !           476:           exchange for a fee.
        !           477: 
        !           478:      Mere aggregation of another independent work with the Program (or
        !           479:      its derivative) on a volume of a storage or distribution medium
        !           480:      does not bring the other work under the scope of these terms.
        !           481: 
        !           482:   4. You may copy and distribute the Program (or a portion or
        !           483:      derivative of it, under Paragraph 2) in object code or executable
        !           484:      form under the terms of Paragraphs 1 and 2 above provided that you
        !           485:      also do one of the following:
        !           486: 
        !           487:         * accompany it with the complete corresponding machine-readable
        !           488:           source code, which must be distributed under the terms of
        !           489:           Paragraphs 1 and 2 above; or,
        !           490: 
        !           491:         * accompany it with a written offer, valid for at least three
        !           492:           years, to give any third party free (except for a nominal
        !           493:           charge for the cost of distribution) a complete
        !           494:           machine-readable copy of the corresponding source code, to be
        !           495:           distributed under the terms of Paragraphs 1 and 2 above; or,
        !           496: 
        !           497:         * accompany it with the information you received as to where the
        !           498:           corresponding source code may be obtained.  (This alternative
        !           499:           is allowed only for noncommercial distribution and only if you
        !           500:           received the program in object code or executable form alone.)
        !           501: 
        !           502:      Source code for a work means the preferred form of the work for
        !           503:      making modifications to it.  For an executable file, complete
        !           504:      source code means all the source code for all modules it contains;
        !           505:      but, as a special exception, it need not include source code for
        !           506:      modules which are standard libraries that accompany the operating
        !           507:      system on which the executable file runs, or for standard header
        !           508:      files or definitions files that accompany that operating system.
        !           509: 
        !           510:   5. You may not copy, modify, sublicense, distribute or transfer the
        !           511:      Program except as expressly provided under this General Public
        !           512:      License. Any attempt otherwise to copy, modify, sublicense,
        !           513:      distribute or transfer the Program is void, and will automatically
        !           514:      terminate your rights to use the Program under this License. 
        !           515:      However, parties who have received copies, or rights to use
        !           516:      copies, from you under this General Public License will not have
        !           517:      their licenses terminated so long as such parties remain in full
        !           518:      compliance.
        !           519: 
        !           520:   6. By copying, distributing or modifying the Program (or any work
        !           521:      based on the Program) you indicate your acceptance of this license
        !           522:      to do so, and all its terms and conditions.
        !           523: 
        !           524:   7. Each time you redistribute the Program (or any work based on the
        !           525:      Program), the recipient automatically receives a license from the
        !           526:      original licensor to copy, distribute or modify the Program
        !           527:      subject to these terms and conditions.  You may not impose any
        !           528:      further restrictions on the recipients' exercise of the rights
        !           529:      granted herein.
        !           530: 
        !           531:   8. The Free Software Foundation may publish revised and/or new
        !           532:      versions of the General Public License from time to time.  Such
        !           533:      new versions will be similar in spirit to the present version, but
        !           534:      may differ in detail to address new problems or concerns.
        !           535: 
        !           536:      Each version is given a distinguishing version number.  If the
        !           537:      Program specifies a version number of the license which applies to
        !           538:      it and "any later version", you have the option of following the
        !           539:      terms and conditions either of that version or of any later
        !           540:      version published by the Free Software Foundation.  If the Program
        !           541:      does not specify a version number of the license, you may choose
        !           542:      any version ever published by the Free Software Foundation.
        !           543: 
        !           544:   9. If you wish to incorporate parts of the Program into other free
        !           545:      programs whose distribution conditions are different, write to the
        !           546:      author to ask for permission.  For software which is copyrighted
        !           547:      by the Free Software Foundation, write to the Free Software
        !           548:      Foundation; we sometimes make exceptions for this.  Our decision
        !           549:      will be guided by the two goals of preserving the free status of
        !           550:      all derivatives of our free software and of promoting the sharing
        !           551:      and reuse of software generally.
        !           552: 
        !           553:                                 NO WARRANTY
        !           554: 
        !           555:  10. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
        !           556:      WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
        !           557:      LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
        !           558:      HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
        !           559:      WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
        !           560:      NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
        !           561:      FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE
        !           562:      QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
        !           563:      PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
        !           564:      SERVICING, REPAIR OR CORRECTION.
        !           565: 
        !           566:  11. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
        !           567:      WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
        !           568:      MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
        !           569:      LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
        !           570:      INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
        !           571:      INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
        !           572:      DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
        !           573:      OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
        !           574:      OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
        !           575:      ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
        !           576: 
        !           577:                       END OF TERMS AND CONDITIONS
        !           578: 
        !           579: How to Apply These Terms to Your New Programs
        !           580: =============================================
        !           581: 
        !           582:    If you develop a new program, and you want it to be of the greatest
        !           583: possible use to humanity, the best way to achieve this is to make it
        !           584: free software which everyone can redistribute and change under these
        !           585: terms.
        !           586: 
        !           587:    To do so, attach the following notices to the program.  It is safest
        !           588: to attach them to the start of each source file to most effectively
        !           589: convey the exclusion of warranty; and each file should have at least the
        !           590: "copyright" line and a pointer to where the full notice is found.
        !           591: 
        !           592:      ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
        !           593:      Copyright (C) 19YY  NAME OF AUTHOR
        !           594:      
        !           595:      This program is free software; you can redistribute it and/or modify
        !           596:      it under the terms of the GNU General Public License as published by
        !           597:      the Free Software Foundation; either version 1, or (at your option)
        !           598:      any later version.
        !           599:      
        !           600:      This program is distributed in the hope that it will be useful,
        !           601:      but WITHOUT ANY WARRANTY; without even the implied warranty of
        !           602:      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !           603:      GNU General Public License for more details.
        !           604:      
        !           605:      You should have received a copy of the GNU General Public License
        !           606:      along with this program; if not, write to the Free Software
        !           607:      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
        !           608: 
        !           609:    Also add information on how to contact you by electronic and paper
        !           610: mail.
        !           611: 
        !           612:    If the program is interactive, make it output a short notice like
        !           613: this when it starts in an interactive mode:
        !           614: 
        !           615:      Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
        !           616:      Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
        !           617:      type `show w'.  This is free software, and you are welcome
        !           618:      to redistribute it under certain conditions; type `show c'
        !           619:      for details.
        !           620: 
        !           621:    The hypothetical commands `show w' and `show c' should show the
        !           622: appropriate parts of the General Public License.  Of course, the
        !           623: commands you use may be called something other than `show w' and `show
        !           624: c'; they could even be mouse-clicks or menu items--whatever suits your
        !           625: program.
        !           626: 
        !           627:    You should also get your employer (if you work as a programmer) or
        !           628: your school, if any, to sign a "copyright disclaimer" for the program,
        !           629: if necessary.  Here is a sample; alter the names:
        !           630: 
        !           631:      Yoyodyne, Inc., hereby disclaims all copyright
        !           632:      interest in the program `Gnomovision'
        !           633:      (a program to direct compilers to make passes
        !           634:      at assemblers) written by James Hacker.
        !           635:      
        !           636:      SIGNATURE OF TY COON, 1 April 1989
        !           637:      Ty Coon, President of Vice
        !           638: 
        !           639:    That's all there is to it!
        !           640: 
        !           641: 
        !           642: File: emacs,  Node: Intro,  Next: Glossary,  Prev: License,  Up: Top
        !           643: 
        !           644: Introduction
        !           645: ************
        !           646: 
        !           647:    You are reading about GNU Emacs, the GNU incarnation of the advanced,
        !           648: self-documenting, customizable, extensible real-time display editor
        !           649: Emacs. (The `G' in `GNU' is not silent.)
        !           650: 
        !           651:    We say that Emacs is a "display" editor because normally the text
        !           652: being edited is visible on the screen and is updated automatically as
        !           653: you type your commands.  *Note Display: Screen.
        !           654: 
        !           655:    We call it a "real-time" editor because the display is updated very
        !           656: frequently, usually after each character or pair of characters you
        !           657: type.  This minimizes the amount of information you must keep in your
        !           658: head as you edit.  *Note Real-time: Basic.
        !           659: 
        !           660:    We call Emacs advanced because it provides facilities that go beyond
        !           661: simple insertion and deletion: filling of text; automatic indentation of
        !           662: programs; viewing two or more files at once; and dealing in terms of
        !           663: characters, words, lines, sentences, paragraphs, and pages, as well as
        !           664: expressions and comments in several different programming languages. 
        !           665: It is much easier to type one command meaning "go to the end of the
        !           666: paragraph" than to find that spot with simple cursor keys.
        !           667: 
        !           668:    "Self-documenting" means that at any time you can type a special
        !           669: character, `Control-h', to find out what your options are.  You can
        !           670: also use it to find out what any command does, or to find all the
        !           671: commands that pertain to a topic.  *Note Help::.
        !           672: 
        !           673:    "Customizable" means that you can change the definitions of Emacs
        !           674: commands in little ways.  For example, if you use a programming
        !           675: language in which comments start with `<**' and end with `**>', you can
        !           676: tell the Emacs comment manipulation commands to use those strings
        !           677: (*note Comments::.).  Another sort of customization is rearrangement of
        !           678: the command set.  For example, if you prefer the four basic cursor
        !           679: motion commands (up, down, left and right) on keys in a diamond pattern
        !           680: on the keyboard, you can have it.  *Note Customization::.
        !           681: 
        !           682:    "Extensible" means that you can go beyond simple customization and
        !           683: write entirely new commands, programs in the Lisp language to be run by
        !           684: Emacs's own Lisp interpreter.  Emacs is an "on-line extensible" system,
        !           685: which means that it is divided into many functions that call each other,
        !           686: any of which can be redefined in the middle of an editing session.  Any
        !           687: part of Emacs can be replaced without making a separate copy of all of
        !           688: Emacs.  Most of the editing commands of Emacs are written in Lisp
        !           689: already; the few exceptions could have been written in Lisp but are
        !           690: written in C for efficiency.  Although only a programmer can write an
        !           691: extension, anybody can use it afterward.
        !           692: 
        !           693: 
        !           694: File: emacs,  Node: Screen,  Next: Characters,  Prev: Concept Index,  Up: Top
        !           695: 
        !           696: The Organization of the Screen
        !           697: ******************************
        !           698: 
        !           699:    Emacs divides the screen into several areas, each of which contains
        !           700: its own sorts of information.  The biggest area, of course, is the one
        !           701: in which you usually see the text you are editing.
        !           702: 
        !           703:    When you are using Emacs, the screen is divided into a number of
        !           704: "windows".  Initially there is one text window occupying all but the
        !           705: last line, plus the special "echo area" or "minibuffer window" in the
        !           706: last line.  The text window can be subdivided horizontally or
        !           707: vertically into multiple text windows, each of which can be used for a
        !           708: different file (*note Windows::.).  The window that the cursor is in is
        !           709: the "selected window", in which editing takes place.  The other windows
        !           710: are just for reference unless you select one of them.
        !           711: 
        !           712:    Each text window's last line is a "mode line" which describes what is
        !           713: going on in that window.  It is in inverse video if the terminal
        !           714: supports that, and contains text that starts like `-----Emacs:
        !           715: SOMETHING'.  Its purpose is to indicate what buffer is being displayed
        !           716: above it in the window; what major and minor modes are in use; and
        !           717: whether the buffer's text has been changed.
        !           718: 
        !           719: * Menu:
        !           720: 
        !           721: * Point::      The place in the text where editing commands operate.
        !           722: * Echo Area::   Short messages appear at the bottom of the screen.
        !           723: * Mode Line::  Interpreting the mode line.
        !           724: 
        !           725: 
        !           726: File: emacs,  Node: Point,  Next: Echo Area,  Prev: Screen,  Up: Screen
        !           727: 
        !           728: Point
        !           729: =====
        !           730: 
        !           731:    When Emacs is running, the terminal's cursor shows the location at
        !           732: which editing commands will take effect.  This location is called
        !           733: "point".  Other commands move point through the text, so that you can
        !           734: edit at different places in it.
        !           735: 
        !           736:    While the cursor appears to point AT a character, point should be
        !           737: thought of as BETWEEN two characters; it points BEFORE the character
        !           738: that the cursor appears on top of.  Sometimes people speak of "the
        !           739: cursor" when they mean "point", or speak of commands that move point as
        !           740: "cursor motion" commands.
        !           741: 
        !           742:    Terminals have only one cursor, and when output is in progress it
        !           743: must appear where the typing is being done.  This does not mean that
        !           744: point is moving.  It is only that Emacs has no way to show you the
        !           745: location of point except when the terminal is idle.
        !           746: 
        !           747:    If you are editing several files in Emacs, each file has its own
        !           748: point location.  A file that is not being displayed remembers where
        !           749: point is so that it can be seen when you look at that file again.
        !           750: 
        !           751:    When there are multiple text windows, each window has its own point
        !           752: location.  The cursor shows the location of point in the selected
        !           753: window. This also is how you can tell which window is selected.  If the
        !           754: same buffer appears in more than one window, point can be moved in each
        !           755: window independently.
        !           756: 
        !           757:    The term `point' comes from the character `.', which was the command
        !           758: in TECO (the language in which the original Emacs was written) for
        !           759: accessing the value now called `point'.
        !           760: 
        !           761: 
        !           762: File: emacs,  Node: Echo Area,  Next: Mode Line,  Prev: Point,  Up: Screen
        !           763: 
        !           764: The Echo Area
        !           765: =============
        !           766: 
        !           767:    The line at the bottom of the screen (below the mode line) is the
        !           768: "echo area".  It is used to display small amounts of text for several
        !           769: purposes.
        !           770: 
        !           771:    "Echoing" means printing out the characters that you type.  Emacs
        !           772: never echoes single-character commands, and multi-character commands are
        !           773: echoed only if you pause while typing them.  As soon as you pause for
        !           774: more than a second in the middle of a command, all the characters of
        !           775: the command so far are echoed.  This is intended to "prompt" you for
        !           776: the rest of the command.  Once echoing has started, the rest of the
        !           777: command is echoed immediately when you type it.  This behavior is
        !           778: designed to give confident users fast response, while giving hesitant
        !           779: users maximum feedback.  You can change this behavior by setting a
        !           780: variable (*note Display Vars::.).
        !           781: 
        !           782:    If a command cannot be executed, it may print an "error message" in
        !           783: the echo area.  Error messages are accompanied by a beep or by flashing
        !           784: the screen.  Also, any input you have typed ahead is thrown away when
        !           785: an error happens.
        !           786: 
        !           787:    Some commands print informative messages in the echo area.  These
        !           788: messages look much like error messages, but they are not announced with
        !           789: a beep and do not throw away input.  Sometimes the message tells you
        !           790: what the command has done, when this is not obvious from looking at the
        !           791: text being edited.  Sometimes the sole purpose of a command is to print
        !           792: a message giving you specific information.  For example, the command
        !           793: `C-x =' is used to print a message describing the character position of
        !           794: point in the text and its current column in the window.  Commands that
        !           795: take a long time often display messages ending in `...' while they are
        !           796: working, and add `done' at the end when they are finished.
        !           797: 
        !           798:    The echo area is also used to display the "minibuffer", a window that
        !           799: is used for reading arguments to commands, such as the name of a file
        !           800: to be edited.  When the minibuffer is in use, the echo area begins with
        !           801: a prompt string that usually ends with a colon; also, the cursor
        !           802: appears in that line because it is the selected window.  You can always
        !           803: get out of the minibuffer by typing `C-g'.  *Note Minibuffer::.
        !           804: 
        !           805: 
        !           806: File: emacs,  Node: Mode Line,  Prev: Echo Area,  Up: Screen
        !           807: 
        !           808: The Mode Line
        !           809: =============
        !           810: 
        !           811:    Each text window's last line is a "mode line" which describes what is
        !           812: going on in that window.  When there is only one text window, the mode
        !           813: line appears right above the echo area.  The mode line is in inverse
        !           814: video if the terminal supports that, starts and ends with dashes, and
        !           815: contains text like `Emacs: SOMETHING'.
        !           816: 
        !           817:    If a mode line has something else in place of `Emacs: SOMETHING',
        !           818: then the window above it is in a special subsystem such as Dired.  The
        !           819: mode line then indicates the status of the subsystem.
        !           820: 
        !           821:    Normally, the mode line has the following appearance:
        !           822: 
        !           823:      --CH-Emacs: BUF      (MAJOR MINOR)----POS------
        !           824: 
        !           825: This gives information about the buffer being displayed in the window:
        !           826: the buffer's name, what major and minor modes are in use, whether the
        !           827: buffer's text has been changed, and how far down the buffer you are
        !           828: currently looking.
        !           829: 
        !           830:    CH contains two stars `**' if the text in the buffer has been edited
        !           831: (the buffer is "modified"), or `--' if the buffer has not been edited. 
        !           832: Exception: for a read-only buffer, it is `%%'.
        !           833: 
        !           834:    BUF is the name of the window's chosen "buffer".  The chosen buffer
        !           835: in the selected window (the window that the cursor is in) is also
        !           836: Emacs's selected buffer, the one that editing takes place in.  When we
        !           837: speak of what some command does to "the buffer", we are talking about
        !           838: the currently selected buffer.  *Note Buffers::.
        !           839: 
        !           840:    POS tells you whether there is additional text above the top of the
        !           841: screen, or below the bottom.  If your file is small and it is all on the
        !           842: screen, POS is `All'.  Otherwise, it is `Top' if you are looking at the
        !           843: beginning of the file, `Bot' if you are looking at the end of the file,
        !           844: or `NN%', where NN is the percentage of the file above the top of the
        !           845: screen.
        !           846: 
        !           847:    MAJOR is the name of the "major mode" in effect in the buffer.  At
        !           848: any time, each buffer is in one and only one of the possible major
        !           849: modes. The major modes available include Fundamental mode (the least
        !           850: specialized), Text mode, Lisp mode, and C mode.  *Note Major Modes::,
        !           851: for details of how the modes differ and how to select one.
        !           852: 
        !           853:    MINOR is a list of some of the "minor modes" that are turned on at
        !           854: the moment in the window's chosen buffer.  `Fill' means that Auto Fill
        !           855: mode is on.  `Abbrev' means that Word Abbrev mode is on. `Ovwrt' means
        !           856: that Overwrite mode is on.  *Note Minor Modes::, for more information. 
        !           857: `Narrow' means that the buffer being displayed has editing restricted
        !           858: to only a portion of its text.  This is not really a minor mode, but is
        !           859: like one.  *Note Narrowing::.  `Def' means that a keyboard macro is
        !           860: being defined.  *Note Keyboard Macros::.
        !           861: 
        !           862:    Some buffers display additional information after the minor modes. 
        !           863: For example, Rmail buffers display the current message number and the
        !           864: total number of messages.  Compilation buffers and Shell mode display
        !           865: the status of the subprocess.
        !           866: 
        !           867:    In addition, if Emacs is currently inside a recursive editing level,
        !           868: square brackets (`[...]') appear around the parentheses that surround
        !           869: the modes.  If Emacs is in one recursive editing level within another,
        !           870: double square brackets appear, and so on.  Since this information
        !           871: pertains to Emacs in general and not to any one buffer, the square
        !           872: brackets appear in every mode line on the screen or not in any of them.
        !           873: *Note Recursive Edit::.
        !           874: 
        !           875:    Emacs can optionally display the time and system load in all mode
        !           876: lines. To enable this feature, type `M-x display-time'.  The
        !           877: information added to the mode line usually appears after the file name,
        !           878: before the mode names and their parentheses.  It looks like this:
        !           879: 
        !           880:      HH:MMpm L.LL [D]
        !           881: 
        !           882: (Some fields may be missing if your operating system cannot support
        !           883: them.) HH and MM are the hour and minute, followed always by `am' or
        !           884: `pm'.  L.LL is the average number of running processes in the whole
        !           885: system recently.  D is an approximate index of the ratio of disk
        !           886: activity to cpu activity for all users.
        !           887: 
        !           888:    The word `Mail' appears after the load level if there is mail for
        !           889: you that you have not read yet.
        !           890: 
        !           891:    Customization note: the user variable `mode-line-inverse-video'
        !           892: controls whether the mode line is displayed in inverse video (assuming
        !           893: the terminal supports it); `nil' means no inverse video.  The default
        !           894: is `t'.
        !           895: 
        !           896: 
        !           897: File: emacs,  Node: Characters,  Next: Keys,  Prev: Screen,  Up: Top
        !           898: 
        !           899: The Emacs Character Set
        !           900: =======================
        !           901: 
        !           902:    GNU Emacs uses the ASCII character set, which defines 128 different
        !           903: character codes.  Some of these codes are assigned graphic symbols such
        !           904: as `a' and `='; the rest are control characters, such as `Control-a'
        !           905: (also called `C-a' for short).  `C-a' gets its name from the fact that
        !           906: you type it by holding down the CTRL key and then pressing `a'.  There
        !           907: is no distinction between `C-a' and `C-A'; they are the same character.
        !           908: 
        !           909:    Some control characters have special names, and special keys you can
        !           910: type them with: RET, TAB, LFD, DEL and ESC. The space character is
        !           911: usually referred to below as SPC, even though strictly speaking it is a
        !           912: graphic character whose graphic happens to be blank.
        !           913: 
        !           914:    Emacs extends the 7-bit ASCII code to an 8-bit code by adding an
        !           915: extra bit to each character.  This makes 256 possible command
        !           916: characters.  The additional bit is called Meta.  Any ASCII character
        !           917: can be made Meta; examples of Meta characters include `Meta-a' (`M-a',
        !           918: for short), `M-A' (not the same character as `M-a', but those two
        !           919: characters normally have the same meaning in Emacs), `M-RET', and
        !           920: `M-C-a'.  For traditional reasons, `M-C-a' is usually called `C-M-a';
        !           921: logically speaking, the order in which the modifier keys CTRL and META
        !           922: are mentioned does not matter.
        !           923: 
        !           924:    Some terminals have a META key, and allow you to type Meta
        !           925: characters by holding this key down.  Thus, `Meta-a' is typed by
        !           926: holding down META and pressing `a'.  The META key works much like the
        !           927: SHIFT key.  Such a key is not always labeled META, however, as this
        !           928: function is often a special option for a key with some other primary
        !           929: purpose.
        !           930: 
        !           931:    If there is no META key, you can still type Meta characters using
        !           932: two-character sequences starting with ESC.  Thus, to enter `M-a', you
        !           933: could type `ESC a'.  To enter `C-M-a', you would type `ESC C-a'.  ESC is
        !           934: allowed on terminals with Meta keys, too, in case you have formed a
        !           935: habit of using it.
        !           936: 
        !           937:    Emacs believes the terminal has a META key if the variable
        !           938: `meta-flag' is non-`nil'.  Normally this is set automatically according
        !           939: to the termcap entry for your terminal type.  However, sometimes the
        !           940: termcap entry is wrong, and then it is useful to set this variable
        !           941: yourself.  *Note Variables::, for how to do this.
        !           942: 
        !           943:    Emacs buffers also use an 8-bit character set, because bytes have 8
        !           944: bits, but only the ASCII characters are considered meaningful. ASCII
        !           945: graphic characters in Emacs buffers are displayed with their graphics. 
        !           946: LFD is the same as a newline character; it is displayed by starting a
        !           947: new line.  TAB is displayed by moving to the next tab stop column
        !           948: (usually every 8 columns).  Other control characters are displayed as a
        !           949: caret (`^') followed by the non-control version of the character; thus,
        !           950: `C-a' is displayed as `^A'.  Non-ASCII characters 128 and up are
        !           951: displayed with octal escape sequences; thus, character code 243
        !           952: (octal), also called `M-#' when used as an input character, is
        !           953: displayed as `\243'.
        !           954: 
        !           955: 
        !           956: File: emacs,  Node: Keys,  Next: Commands,  Prev: Characters,  Up: Top
        !           957: 
        !           958: Keys
        !           959: ====
        !           960: 
        !           961:    A "complete key"--where `key' is short for "key sequence"--is a
        !           962: sequence of keystrokes that are understood by Emacs as a unit, as a
        !           963: single command (possibly undefined).  Most single characters constitute
        !           964: complete keys in the standard Emacs command set; there are also some
        !           965: multi-character keys.  Examples of complete keys are `C-a', `X', RET,
        !           966: `C-x C-f' and `C-x 4 C-f'.
        !           967: 
        !           968:    A "prefix key" is a sequence of keystrokes that are the beginning of
        !           969: a complete key, but not a whole one.  Prefix keys and complete keys are
        !           970: collectively called "keys".
        !           971: 
        !           972:    A prefix key is the beginning of a series of longer sequences that
        !           973: are valid keys; adding any single character to the end of the prefix
        !           974: gives a valid key, which could be defined as an Emacs command, or could
        !           975: be a prefix itself.  For example, `C-x' is standardly defined as a
        !           976: prefix, so `C-x' and the next input character combine to make a
        !           977: two-character key. There are 256 different two-character keys starting
        !           978: with `C-x', one for each possible second character.  Many of these
        !           979: two-character keys starting with `C-x' are standardly defined as Emacs
        !           980: commands.  Notable examples include `C-x C-f' and `C-x s' (*note
        !           981: Files::.).
        !           982: 
        !           983:    Adding one character to a prefix key does not have to form a complete
        !           984: key.  It could make another, longer prefix.  For example, `C-x 4' is
        !           985: itself a prefix that leads to 256 different three-character keys,
        !           986: including `C-x 4 f', `C-x 4 b' and so on.  It would be possible to
        !           987: define one of those three-character sequences as a prefix, creating a
        !           988: series of four-character keys, but we did not define any of them this
        !           989: way.
        !           990: 
        !           991:    By contrast, the two-character sequence `C-f C-k' is not a key,
        !           992: because the `C-f' is a complete key in itself.  It's impossible to give
        !           993: `C-f C-k' an independent meaning as a command as long as `C-f' retains
        !           994: its meaning.  `C-f C-k' is two commands.
        !           995: 
        !           996:    All told, the prefix keys in Emacs are `C-c', `C-x', `C-h', `C-x 4',
        !           997: and ESC.  But this is not built in; it is just a matter of Emacs's
        !           998: standard key bindings.  In customizing Emacs, you could make new prefix
        !           999: keys, or eliminate these.  *Note Key Bindings::.
        !          1000: 
        !          1001:    Whether a sequence is a key can be changed by customization.  For
        !          1002: example, if you redefine `C-f' as a prefix, `C-f C-k' automatically
        !          1003: becomes a key (complete, unless you define it too as a prefix).
        !          1004: Conversely, if you remove the prefix definition of `C-x 4', then `C-x 4
        !          1005: f' (or `C-x 4 ANYTHING') is no longer a key.
        !          1006: 
        !          1007: 

unix.superglobalmegacorp.com

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