-This is Info file ../../info/xemacs.info, produced by Makeinfo version
-1.68 from the input file xemacs.texi.
-
-INFO-DIR-SECTION XEmacs Editor
-START-INFO-DIR-ENTRY
-* XEmacs: (xemacs). XEmacs Editor.
-END-INFO-DIR-ENTRY
-
- This file documents the XEmacs editor.
-
- Copyright (C) 1985, 1986, 1988 Richard M. Stallman. Copyright (C)
-1991, 1992, 1993, 1994 Lucid, Inc. Copyright (C) 1993, 1994 Sun
-Microsystems, Inc. Copyright (C) 1995 Amdahl Corporation.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided also
-that the sections entitled "The GNU Manifesto", "Distribution" and "GNU
-General Public License" are included exactly as in the original, and
-provided that the entire resulting derived work is distributed under the
-terms of a permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that the sections entitled "The GNU Manifesto",
-"Distribution" and "GNU General Public License" may be included in a
-translation approved by the author instead of in the original English.
-
-\1f
-File: xemacs.info, Node: Top, Next: License, Up: (dir)
-
- The XEmacs Editor *****************
-
- XEmacs is the extensible, customizable, self-documenting real-time
-display editor. This Info file describes how to edit with Emacs and
-some of how to customize it, but not how to extend it. It corresponds
-to XEmacs version 21.0.
-
- This manual is intended as a detailed reference to XEmacs. If you
-are looking for an introductory manual, see the New User's Guide.
-
-* Menu:
-
-* License:: The GNU General Public License gives you permission
- to redistribute XEmacs on certain terms; and also
- explains that there is no warranty.
-* Distrib:: How to get XEmacs.
-* Intro:: An introduction to XEmacs concepts.
-* Glossary:: The glossary.
-* Manifesto:: What's GNU? Gnu's Not Unix!
-
-Indices, nodes containing large menus
-* Key Index:: An item for each standard XEmacs key sequence.
-* Command Index:: An item for each command name.
-* Variable Index:: An item for each documented variable.
-* Concept Index:: An item for each concept.
-
-Important General Concepts
-* Frame:: How to interpret what you see on the screen.
-* Keystrokes:: Keyboard gestures XEmacs recognizes.
-* Pull-down Menus::
- The XEmacs Pull-down Menus available under X.
-* Entering Emacs::
- Starting Emacs from the shell.
-* Exiting:: Stopping or killing XEmacs.
-* Command Switches::
- Hairy startup options.
-* Startup Paths::
- How XEmacs finds Directories and Files
-
-Fundamental Editing Commands
-* Basic:: The most basic editing commands.
-* Undo:: Undoing recently made changes in the text.
-* Minibuffer:: Entering arguments that are prompted for.
-* M-x:: Invoking commands by their names.
-* Help:: Commands for asking XEmacs about its commands.
-
-Important Text-Changing Commands
-* Mark:: The mark: how to delimit a "region" of text.
-* Mouse Selection::
- Selecting text with the mouse.
-* Additional Mouse Operations::
- Other operations available from the mouse.
-* Killing:: Killing text.
-* Yanking:: Recovering killed text. Moving text.
-* Using X Selections::
- Using primary selection, cut buffers, and highlighted regions.
-* Accumulating Text::
- Other ways of copying text.
-* Rectangles:: Operating on the text inside a rectangle on the screen.
-* Registers:: Saving a text string or a location in the buffer.
-* Display:: Controlling what text is displayed.
-* Search:: Finding or replacing occurrences of a string.
-* Fixit:: Commands especially useful for fixing typos.
-
-Larger Units of Text
-* Files:: All about handling files.
-* Buffers:: Multiple buffers; editing several files at once.
-* Windows:: Viewing two pieces of text at once.
-* Mule:: Using world scripts.
-
-Advanced Features
-* Major Modes:: Text mode vs. Lisp mode vs. C mode ...
-* Indentation:: Editing the white space at the beginnings of lines.
-* Text:: Commands and modes for editing English.
-* Programs:: Commands and modes for editing programs.
-* Running:: Compiling, running and debugging programs.
-* Packages:: How to add new packages to XEmacs.
-* Abbrevs:: How to define text abbreviations to reduce
- the number of characters you must type.
-* Picture:: Editing pictures made up of characters
- using the quarter-plane screen model.
-* Sending Mail:: Sending mail in XEmacs.
-* Reading Mail:: Reading mail in XEmacs.
-* Calendar/Diary:: A Calendar and diary facility in XEmacs.
-* Sorting:: Sorting lines, paragraphs or pages within XEmacs.
-* Shell:: Executing shell commands from XEmacs.
-* Narrowing:: Restricting display and editing to a portion
- of the buffer.
-* Hardcopy:: Printing buffers or regions.
-* Recursive Edit::
- A command can allow you to do editing
- "within the command". This is called a
- `recursive editing level'.
-* Dissociated Press:: Dissociating text for fun.
-* CONX:: A different kind of dissociation.
-* Amusements:: Various games and hacks.
-* Emulation:: Emulating some other editors with XEmacs.
-* Customization:: Modifying the behavior of XEmacs.
-
-Recovery from Problems.
-* Quitting:: Quitting and aborting.
-* Lossage:: What to do if XEmacs is hung or malfunctioning.
-* Bugs:: How and when to report a bug.
-
-Here are some other nodes which are really inferiors of the ones
-already listed, mentioned here so you can get to them in one step:
-
- -- The Detailed Node Listing --
-
-The Organization of the Frame
-
-* Point:: The place in the text where editing commands operate.
-* Echo Area:: Short messages appear at the bottom of the frame.
-* Mode Line:: Interpreting the mode line.
-* XEmacs under X:: Some information on using XEmacs under the X
- Window System.
-
-Keystrokes
-
-* Intro to Keystrokes:: Keystrokes as building blocks of key sequences.
-* Representing Keystrokes:: Using lists of modifiers and keysyms to
- represent keystrokes.
-* Key Sequences:: Combine key strokes into key sequences you can
- bind to commands.
-* String Key Sequences:: Available for upward compatibility.
-* Meta Key:: Using <ESC> to represent <Meta>
-* Super and Hyper Keys:: Adding modifier keys on certain keyboards.
-* Character Representation:: How characters appear in XEmacs buffers.
-* Commands:: How commands are bound to key sequences.
-
-Pull-down Menus
-
-* File Menu:: Items on the File menu.
-* Edit Menu:: Items on the Edit menu.
-* Apps Menu:: Items on the Apps menu.
-* Options Menu:: Items on the Options menu.
-* Buffers Menu:: Information about the Buffers menu.
-* Tools Menu:: Items on the Tools menu.
-* Help Menu:: Items on the Help menu.
-* Menu Customization:: Adding and removing menu items and related
- operations.
-
-Basic Editing Commands
-
-* Blank Lines:: Commands to make or delete blank lines.
-* Continuation Lines:: Lines too wide for the frame.
-* Position Info:: What page, line, row, or column is point on?
-* Arguments:: Numeric arguments for repeating a command.
-
-The Minibuffer
-
-* File: Minibuffer File. Entering file names with the minibuffer.
-* Edit: Minibuffer Edit. How to edit in the minibuffer.
-* Completion:: An abbreviation facility for minibuffer input.
-* Repetition:: Re-executing commands that used the minibuffer.
-
-The Mark and the Region
-
-* Setting Mark:: Commands to set the mark.
-* Using Region:: Summary of ways to operate on contents of the region.
-* Marking Objects:: Commands to put region around textual units.
-* Mark Ring:: Previous mark positions saved so you can go back there.
-
-Yanking
-
-* Kill Ring:: Where killed text is stored. Basic yanking.
-* Appending Kills:: Several kills in a row all yank together.
-* Earlier Kills:: Yanking something killed some time ago.
-
-Using X Selections
-
-* X Clipboard Selection:: Pasting to the X clipboard.
-* X Selection Commands:: Other operations on the selection.
-* X Cut Buffers:: X cut buffers are available for compatibility.
-* Active Regions:: Using zmacs-style highlighting of the
- selected region.
-
-Registers
-
-* RegPos:: Saving positions in registers.
-* RegText:: Saving text in registers.
-* RegRect:: Saving rectangles in registers.
-
-Controlling the Display
-
-* Scrolling:: Moving text up and down in a window.
-* Horizontal Scrolling:: Moving text left and right in a window.
-* Selective Display:: Hiding lines with lots of indentation.
-* Display Vars:: Information on variables for customizing display.
-
-Searching and Replacement
-
-* Incremental Search:: Search happens as you type the string.
-* Non-Incremental Search:: Specify entire string and then search.
-* Word Search:: Search for sequence of words.
-* Regexp Search:: Search for match for a regexp.
-* Regexps:: Syntax of regular expressions.
-* Search Case:: To ignore case while searching, or not.
-* Replace:: Search, and replace some or all matches.
-* Other Repeating Search:: Operating on all matches for some regexp.
-
-Replacement Commands
-
-* Unconditional Replace:: Replacing all matches for a string.
-* Regexp Replace:: Replacing all matches for a regexp.
-* Replacement and Case:: How replacements preserve case of letters.
-* Query Replace:: How to use querying.
-
-Commands for Fixing Typos
-
-* Kill Errors:: Commands to kill a batch of recently entered text.
-* Transpose:: Exchanging two characters, words, lines, lists...
-* Fixing Case:: Correcting case of last word entered.
-* Spelling:: Apply spelling checker to a word, or a whole file.
-
-File Handling
-
-* File Names:: How to type and edit file name arguments.
-* Visiting:: Visiting a file prepares XEmacs to edit the file.
-* Saving:: Saving makes your changes permanent.
-* Reverting:: Reverting cancels all the changes not saved.
-* Auto Save:: Auto Save periodically protects against loss of data.
-* Version Control:: Version control systems (RCS and SCCS).
-* ListDir:: Listing the contents of a file directory.
-* Comparing Files:: Finding where two files differ.
-* Dired:: "Editing" a directory to delete, rename, etc.
- the files in it.
-* Misc File Ops:: Other things you can do on files.
-
-Saving Files
-
-* Backup:: How XEmacs saves the old version of your file.
-* Interlocking:: How XEmacs protects against simultaneous editing
- of one file by two users.
-
-Backup Files
-
-* Names: Backup Names. How backup files are named;
- Choosing single or numbered backup files.
-* Deletion: Backup Deletion. XEmacs deletes excess numbered backups.
-* Copying: Backup Copying. Backups can be made by copying or renaming.
-
-Auto-Saving: Protection Against Disasters
-
-* Files: Auto Save Files.
-* Control: Auto Save Control.
-* Recover:: Recovering text from auto-save files.
-
-Version Control
-
-* Concepts of VC:: Basic version control information;
- checking files in and out.
-* Editing with VC:: Commands for editing a file maintained
- with version control.
-* Variables for Check-in/out:: Variables that affect the commands used
- to check files in or out.
-* Log Entries:: Logging your changes.
-* Change Logs and VC:: Generating a change log file from log
- entries.
-* Old Versions:: Examining and comparing old versions.
-* VC Status:: Commands to view the VC status of files and
- look at log entries.
-* Renaming and VC:: A command to rename both the source and
- master file correctly.
-* Snapshots:: How to make and use snapshots, a set of
- file versions that can be treated as a unit.
-* Version Headers:: Inserting version control headers into
- working files.
-
-Snapshots
-
-* Making Snapshots:: The snapshot facilities.
-* Snapshot Caveats:: Things to be careful of when using snapshots.
-
-Dired, the Directory Editor
-
-* Enter: Dired Enter. How to invoke Dired.
-* Edit: Dired Edit. Editing the Dired buffer.
-* Deletion: Dired Deletion. Deleting files with Dired.
-* Immed: Dired Immed. Other file operations through Dired.
-
-Using Multiple Buffers
-
-* Select Buffer:: Creating a new buffer or reselecting an old one.
-* List Buffers:: Getting a list of buffers that exist.
-* Misc Buffer:: Renaming; changing read-onliness; copying text.
-* Kill Buffer:: Killing buffers you no longer need.
-* Several Buffers:: How to go through the list of all buffers
- and operate variously on several of them.
-
-Multiple Windows
-
-* Basic Window:: Introduction to XEmacs windows.
-* Split Window:: New windows are made by splitting existing windows.
-* Other Window:: Moving to another window or doing something to it.
-* Pop Up Window:: Finding a file or buffer in another window.
-* Change Window:: Deleting windows and changing their sizes.
-
-Major Modes
-
-* Choosing Modes:: How major modes are specified or chosen.
-
-Indentation
-
-* Indentation Commands:: Various commands and techniques for indentation.
-* Tab Stops:: You can set arbitrary "tab stops" and then
- indent to the next tab stop when you want to.
-* Just Spaces:: You can request indentation using just spaces.
-
-Commands for Human Languages
-
-* Text Mode:: The major modes for editing text files.
-* Nroff Mode:: The major mode for editing input to the formatter nroff.
-* TeX Mode:: The major modes for editing input to the formatter TeX.
-* Outline Mode:: The major mode for editing outlines.
-* Words:: Moving over and killing words.
-* Sentences:: Moving over and killing sentences.
-* Paragraphs:: Moving over paragraphs.
-* Pages:: Moving over pages.
-* Filling:: Filling or justifying text
-* Case:: Changing the case of text
-
-TeX Mode
-
-* Editing: TeX Editing. Special commands for editing in TeX mode.
-* Printing: TeX Print. Commands for printing part of a file with TeX.
-
-Outline Mode
-
-* Format: Outline Format. What the text of an outline looks like.
-* Motion: Outline Motion. Special commands for moving through outlines.
-* Visibility: Outline Visibility. Commands to control what is visible.
-
-Filling Text
-
-* Auto Fill:: Auto Fill mode breaks long lines automatically.
-* Fill Commands:: Commands to refill paragraphs and center lines.
-* Fill Prefix:: Filling when every line is indented or in a comment, etc.
-
-Editing Programs
-
-* Program Modes:: Major modes for editing programs.
-* Lists:: Expressions with balanced parentheses.
- There are editing commands to operate on them.
-* Defuns:: Each program is made up of separate functions.
- There are editing commands to operate on them.
-* Grinding:: Adjusting indentation to show the nesting.
-* Matching:: Insertion of a close-delimiter flashes matching open.
-* Comments:: Inserting, filling and aligning comments.
-* Balanced Editing:: Inserting two matching parentheses at once, etc.
-* Lisp Completion:: Completion on symbol names in Lisp code.
-* Documentation:: Getting documentation of functions you plan to call.
-* Change Log:: Maintaining a change history for your program.
-* Tags:: Go directly to any function in your program in one
- command. Tags remembers which file it is in.
-* Fortran:: Fortran mode and its special features.
-* Asm Mode:: Asm mode and its special features.
-
-Indentation for Programs
-
-* Basic Indent::
-* Multi-line Indent:: Commands to reindent many lines at once.
-* Lisp Indent:: Specifying how each Lisp function should be indented.
-* C Indent:: Choosing an indentation style for C code.
-
-Tags Tables
-
-* Tag Syntax:: Tag syntax for various types of code and text files.
-* Create Tags Table:: Creating a tags table with `etags'.
-* Select Tags Table:: How to visit a tags table.
-* Find Tag:: Commands to find the definition of a specific tag.
-* Tags Search:: Using a tags table for searching and replacing.
-* List Tags:: Listing and finding tags defined in a file.
-
-Fortran Mode
-
-* Motion: Fortran Motion. Moving point by statements or subprograms.
-* Indent: Fortran Indent. Indentation commands for Fortran.
-* Comments: Fortran Comments. Inserting and aligning comments.
-* Columns: Fortran Columns. Measuring columns for valid Fortran.
-* Abbrev: Fortran Abbrev. Built-in abbrevs for Fortran keywords.
-
-Fortran Indentation
-
-* Commands: ForIndent Commands. Commands for indenting Fortran.
-* Numbers: ForIndent Num. How line numbers auto-indent.
-* Conv: ForIndent Conv. Conventions you must obey to avoid trouble.
-* Vars: ForIndent Vars. Variables controlling Fortran indent style.
-
-Compiling and Testing Programs
-
-* Compilation:: Compiling programs in languages other than Lisp
- (C, Pascal, etc.)
-* Modes: Lisp Modes. Various modes for editing Lisp programs, with
- different facilities for running the Lisp programs.
-* Libraries: Lisp Libraries. Creating Lisp programs to run in XEmacs.
-* Eval: Lisp Eval. Executing a single Lisp expression in XEmacs.
-* Debug: Lisp Debug. Debugging Lisp programs running in XEmacs.
-* Interaction: Lisp Interaction. Executing Lisp in an XEmacs buffer.
-* External Lisp:: Communicating through XEmacs with a separate Lisp.
-
-Lisp Libraries
-
-* Loading:: Loading libraries of Lisp code into XEmacs for use.
-* Compiling Libraries:: Compiling a library makes it load and run faster.
-* Mocklisp:: Converting Mocklisp to Lisp so XEmacs can run it.
-
-Packages
-
-* Packages:: Introduction to XEmacs Packages.
-* Package Terminology:: Understanding different kinds of packages.
-* Using Packages:: How to install and use packages.
-* Building Packages:: Building packages from sources.
-
-Abbrevs
-
-* Defining Abbrevs:: Defining an abbrev, so it will expand when typed.
-* Expanding Abbrevs:: Controlling expansion: prefixes, canceling expansion.
-* Editing Abbrevs:: Viewing or editing the entire list of defined abbrevs.
-* Saving Abbrevs:: Saving the entire list of abbrevs for another session.
-* Dynamic Abbrevs:: Abbreviations for words already in the buffer.
-
-Editing Pictures
-
-* Basic Picture:: Basic concepts and simple commands of Picture Mode.
-* Insert in Picture:: Controlling direction of cursor motion
- after "self-inserting" characters.
-* Tabs in Picture:: Various features for tab stops and indentation.
-* Rectangles in Picture:: Clearing and superimposing rectangles.
-
-Sending Mail
-
-* Format: Mail Format. Format of the mail being composed.
-* Headers: Mail Headers. Details of allowed mail header fields.
-* Mode: Mail Mode. Special commands for editing mail being composed.
-
-Running Shell Commands from XEmacs
-
-* Single Shell:: How to run one shell command and return.
-* Interactive Shell:: Permanent shell taking input via XEmacs.
-* Shell Mode:: Special XEmacs commands used with permanent shell.
-
-Customization
-
-* Minor Modes:: Each minor mode is one feature you can turn on
- independently of any others.
-* Variables:: Many XEmacs commands examine XEmacs variables
- to decide what to do; by setting variables,
- you can control their functioning.
-* Keyboard Macros:: A keyboard macro records a sequence of keystrokes
- to be replayed with a single command.
-* Key Bindings:: The keymaps say what command each key runs.
- By changing them, you can "redefine keys".
-* Syntax:: The syntax table controls how words and expressions
- are parsed.
-* Init File:: How to write common customizations in the `.emacs'
- file.
-* Audible Bell:: Changing how XEmacs sounds the bell.
-* Faces:: Changing the fonts and colors of a region of text.
-* X Resources:: X resources controlling various aspects of the
- behavior of XEmacs.
-
-Variables
-
-* Examining:: Examining or setting one variable's value.
-* Easy Customization:: Convenient and easy customization of variables.
-* Edit Options:: Examining or editing list of all variables' values.
-* Locals:: Per-buffer values of variables.
-* File Variables:: How files can specify variable values.
-
-Keyboard Macros
-
-* Basic Kbd Macro:: Defining and running keyboard macros.
-* Save Kbd Macro:: Giving keyboard macros names; saving them in files.
-* Kbd Macro Query:: Keyboard macros that do different things each use.
-
-Customizing Key Bindings
-
-* Keymaps:: Definition of the keymap data structure.
- Names of XEmacs's standard keymaps.
-* Rebinding:: How to redefine one key's meaning conveniently.
-* Disabling:: Disabling a command means confirmation is required
- before it can be executed. This is done to protect
- beginners from surprises.
-
-The Syntax Table
-
-* Entry: Syntax Entry. What the syntax table records for each character.
-* Change: Syntax Change. How to change the information.
-
-The Init File, `~/.emacs'
-
-* Init Syntax:: Syntax of constants in Emacs Lisp.
-* Init Examples:: How to do some things with an init file.
-* Terminal Init:: Each terminal type can have an init file.
-
-Dealing with XEmacs Trouble
-
-* Stuck Recursive:: `[...]' in mode line around the parentheses.
-* Screen Garbled:: Garbage on the screen.
-* Text Garbled:: Garbage in the text.
-* Unasked-for Search:: Spontaneous entry to incremental search.
-* Emergency Escape:: Emergency escape--
- What to do if XEmacs stops responding.
-* Total Frustration:: When you are at your wits' end.
-
-\1f
-File: xemacs.info, Node: License, Next: Distrib, Prev: Top, Up: Top
-
-GNU GENERAL PUBLIC LICENSE
-**************************
-
- Version 1, February 1989
-
- Copyright (C) 1989 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-Preamble
-========
-
- The license agreements of most software companies try to keep users
-at the mercy of those companies. By contrast, our General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. The
-General Public License applies to the Free Software Foundation's
-software and to any other program whose authors commit to using it.
-You can use it for your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Specifically, the General Public License is designed to make
-sure that you have the freedom to give away or sell copies of free
-software, that you receive source code or can get it if you want it,
-that you can change the software or use pieces of it in new free
-programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of a such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must tell them their rights.
-
- We protect your rights with two steps: (1) copyright the software,
-and (2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 1. This License Agreement applies to any program or other work which
- contains a notice placed by the copyright holder saying it may be
- distributed under the terms of this General Public License. The
- "Program", below, refers to any such program or work, and a "work
- based on the Program" means either the Program or any work
- containing the Program or a portion of it, either verbatim or with
- modifications. Each licensee is addressed as "you".
-
- 2. You may copy and distribute verbatim copies of the Program's source
- code as you receive it, in any medium, provided that you
- conspicuously and appropriately publish on each copy an
- appropriate copyright notice and disclaimer of warranty; keep
- intact all the notices that refer to this General Public License
- and to the absence of any warranty; and give any other recipients
- of the Program a copy of this General Public License along with
- the Program. You may charge a fee for the physical act of
- transferring a copy.
-
- 3. You may modify your copy or copies of the Program or any portion of
- it, and copy and distribute such modifications under the terms of
- Paragraph 1 above, provided that you also do the following:
-
- * cause the modified files to carry prominent notices stating
- that you changed the files and the date of any change; and
-
- * cause the whole of any work that you distribute or publish,
- that in whole or in part contains the Program or any part
- thereof, either with or without modifications, to be licensed
- at no charge to all third parties under the terms of this
- General Public License (except that you may choose to grant
- warranty protection to some or all third parties, at your
- option).
-
- * If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the simplest and most usual way, to print
- or display an announcement including an appropriate copyright
- notice and a notice that there is no warranty (or else,
- saying that you provide a warranty) and that users may
- redistribute the program under these conditions, and telling
- the user how to view a copy of this General Public License.
-
- * You may charge a fee for the physical act of transferring a
- copy, and you may at your option offer warranty protection in
- exchange for a fee.
-
- Mere aggregation of another independent work with the Program (or
- its derivative) on a volume of a storage or distribution medium
- does not bring the other work under the scope of these terms.
-
- 4. You may copy and distribute the Program (or a portion or
- derivative of it, under Paragraph 2) in object code or executable
- form under the terms of Paragraphs 1 and 2 above provided that you
- also do one of the following:
-
- * accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of
- Paragraphs 1 and 2 above; or,
-
- * accompany it with a written offer, valid for at least three
- years, to give any third party free (except for a nominal
- charge for the cost of distribution) a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Paragraphs 1 and 2 above; or,
-
- * accompany it with the information you received as to where the
- corresponding source code may be obtained. (This alternative
- is allowed only for noncommercial distribution and only if you
- received the program in object code or executable form alone.)
-
- Source code for a work means the preferred form of the work for
- making modifications to it. For an executable file, complete
- source code means all the source code for all modules it contains;
- but, as a special exception, it need not include source code for
- modules which are standard libraries that accompany the operating
- system on which the executable file runs, or for standard header
- files or definitions files that accompany that operating system.
-
- 5. You may not copy, modify, sublicense, distribute or transfer the
- Program except as expressly provided under this General Public
- License. Any attempt otherwise to copy, modify, sublicense,
- distribute or transfer the Program is void, and will automatically
- terminate your rights to use the Program under this License.
- However, parties who have received copies, or rights to use
- copies, from you under this General Public License will not have
- their licenses terminated so long as such parties remain in full
- compliance.
-
- 6. By copying, distributing or modifying the Program (or any work
- based on the Program) you indicate your acceptance of this license
- to do so, and all its terms and conditions.
-
- 7. Each time you redistribute the Program (or any work based on the
- Program), the recipient automatically receives a license from the
- original licensor to copy, distribute or modify the Program
- subject to these terms and conditions. You may not impose any
- further restrictions on the recipients' exercise of the rights
- granted herein.
-
- 8. The Free Software Foundation may publish revised and/or new
- versions of the General Public License from time to time. Such
- new versions will be similar in spirit to the present version, but
- may differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
- Program specifies a version number of the license which applies to
- it and "any later version", you have the option of following the
- terms and conditions either of that version or of any later
- version published by the Free Software Foundation. If the Program
- does not specify a version number of the license, you may choose
- any version ever published by the Free Software Foundation.
-
- 9. If you wish to incorporate parts of the Program into other free
- programs whose distribution conditions are different, write to the
- author to ask for permission. For software which is copyrighted
- by the Free Software Foundation, write to the Free Software
- Foundation; we sometimes make exceptions for this. Our decision
- will be guided by the two goals of preserving the free status of
- all derivatives of our free software and of promoting the sharing
- and reuse of software generally.
-
- NO WARRANTY
-
- 10. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
- WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
- LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
- HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
- WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
- NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
- QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
- PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
- SERVICING, REPAIR OR CORRECTION.
-
- 11. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
- WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
- MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
- LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
- INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
- INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
- DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
- OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
- OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Appendix: How to Apply These Terms to Your New Programs
-=======================================================
-
- If you develop a new program, and you want it to be of the greatest
-possible use to humanity, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
- Copyright (C) 19YY NAME OF AUTHOR
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 1, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Also add information on how to contact you by electronic and paper
-mail.
-
- If the program is interactive, make it output a short notice like
-this when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
- The hypothetical commands `show w' and `show c' should show the
-appropriate parts of the General Public License. Of course, the
-commands you use may be called something other than `show w' and `show
-c'; they could even be mouse-clicks or menu items--whatever suits your
-program.
-
- You should also get your employer (if you work as a programmer) or
-your school, if any, to sign a "copyright disclaimer" for the program,
-if necessary. Here a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- program `Gnomovision' (a program to direct compilers to make passes
- at assemblers) written by James Hacker.
-
- SIGNATURE OF TY COON, 1 April 1989
- Ty Coon, President of Vice
-
- That's all there is to it!
-
-\1f
-File: xemacs.info, Node: Distrib, Next: Intro, Prev: License, Up: Top
-
-Distribution
-************
-
- XEmacs is "free"; this means that everyone is free to use it and
-free to redistribute it on a free basis. XEmacs is not in the public
-domain; it is copyrighted and there are restrictions on its
-distribution, but these restrictions are designed to permit everything
-that a good cooperating citizen would want to do. What is not allowed
-is to try to prevent others from further sharing any version of XEmacs
-that they might get from you. The precise conditions are found in the
-GNU General Public License that comes with XEmacs and also appears
-following this section.
-
- The easiest way to get a copy of XEmacs is from someone else who has
-it. You need not ask for permission to do so, or tell any one else;
-just copy it.
-
- If you have access to the Internet, you can get the latest version of
-XEmacs from the anonymous FTP server `ftp.xemacs.org' in the directory
-`/pub/xemacs'. It can also be found at numerous other archive sites
-around the world; check the file `etc/DISTRIB' in an XEmacs
-distribution for the latest known list.
-
-Getting Other Versions of Emacs
-===============================
-
- The Free Software Foundation's version of Emacs (called "FSF Emacs"
-in this manual and often referred to as "GNU Emacs") is available by
-anonymous FTP from `prep.ai.mit.edu'.
-
- Win-Emacs, an older version of XEmacs that runs on Microsoft Windows
-and Windows NT, is available by anonymous FTP from `ftp.netcom.com' in
-the directory `/pub/pe/pearl', or from `ftp.cica.indiana.edu' as the
-files `wemdemo*.zip' in the directory `/pub/pc/win3/demo'.
-
-\1f
-File: xemacs.info, Node: Intro, Next: Glossary, Prev: Distrib, Up: Top
-
-Introduction
-************
-
- You are reading about XEmacs, an incarnation of the advanced,
-self-documenting, customizable, extensible real-time display editor
-Emacs. XEmacs provides many powerful display and user-interface
-capabilities not found in other Emacsen and is mostly upwardly
-compatible with GNU Emacs from the Free Software Foundation (referred
-to as "FSF Emacs" in this manual). XEmacs also comes standard with a
-great number of useful packages.
-
- We say that XEmacs is a "display" editor because normally the text
-being edited is visible on the screen and is updated automatically as
-you type. *Note Display: Frame.
-
- We call XEmacs a "real-time" editor because the display is updated
-very frequently, usually after each character or pair of characters you
-type. This minimizes the amount of information you must keep in your
-head as you edit. *Note Real-time: Basic.
-
- We call XEmacs advanced because it provides facilities that go beyond
-simple insertion and deletion: filling of text; automatic indentation of
-programs; viewing two or more files at once; and dealing in terms of
-characters, words, lines, sentences, paragraphs, and pages, as well as
-expressions and comments in several different programming languages.
-It is much easier to type one command meaning "go to the end of the
-paragraph" than to find that spot with simple cursor keys.
-
- "Self-documenting" means that at any time you can type a special
-character, `Control-h', to find out what your options are. You can
-also use `C-h' to find out what a command does, or to find all the
-commands relevant to a topic. *Note Help::.
-
- "Customizable" means you can change the definitions of XEmacs
-commands. For example, if you use a programming language in which
-comments start with `<**' and end with `**>', you can tell the XEmacs
-comment manipulation commands to use those strings (*note Comments::.).
-Another sort of customization is rearrangement of the command set.
-For example, you can set up the four basic cursor motion commands (up,
-down, left and right) on keys in a diamond pattern on the keyboard if
-you prefer. *Note Customization::.
-
- "Extensible" means you can go beyond simple customization and write
-entirely new commands, programs in the Lisp language to be run by
-XEmacs's own Lisp interpreter. XEmacs is an "on-line extensible"
-system: it is divided into many functions that call each other. You can
-redefine any function in the middle of an editing session and replace
-any part of XEmacs without making a separate copy of all of XEmacs.
-Most of the editing commands of XEmacs are written in Lisp; the few
-exceptions could have been written in Lisp but are written in C for
-efficiency. Only a programmer can write an extension to XEmacs, but
-anybody can use it afterward.
-
-\1f
-File: xemacs.info, Node: Frame, Next: Keystrokes, Prev: Concept Index, Up: Top
-
-The XEmacs Frame
-****************
-
-Frame
- In many environments, such as a tty terminal, an XEmacs frame
- literally takes up the whole screen. If you are running XEmacs in
- a multi-window system like the X Window System, the XEmacs frame
- takes up one X window. *Note XEmacs under X::, for more
- information.
-
-Window
- No matter what environment you are running in, XEmacs allows you
- to look at several buffers at the same time by having several
- windows be part of the frame. Often, the whole frame is taken up
- by just one window, but you can split the frame into two or more
- subwindows. If you are running XEmacs under the X window system,
- that means you can have several "XEmacs windows" inside the X
- window that contains the XEmacs frame. You can even have multiple
- frames in different X windows, each with their own set of
- subwindows.
-
- Each XEmacs frame displays a variety of information:
- * The biggest area usually displays the text you are editing. It may
- consist of one window or of two or more windows if you need to
- look at two buffers a the same time.
-
- * Below each text window's last line is a "mode line" (*note Mode
- Line::.), which describes what is going on in that window. The
- mode line is in inverse video if the terminal supports that. If
- there are several XEmacs windows in one frame, each window has its
- own mode line.
-
- * At the bottom of each XEmacs frame is the "echo area" or
- "minibuffer window"(*note Echo Area::.). It is used by XEmacs to
- exchange information with the user. There is only one echo area
- per XEmacs frame.
-
- * If you are running XEmacs under the X Window System, a menu bar at
- the top of the frame makes shortcuts to several of the commands
- available (*note Pull-down Menus::.).
-
- You can subdivide the XEmacs frame into multiple text windows, and
-use each window for a different file (*note Windows::.). Multiple
-XEmacs windows are tiled vertically on the XEmacs frame. The upper
-XEmacs window is separated from the lower window by its mode line.
-
- When there are multiple, tiled XEmacs windows on a single XEmacs
-frame, the XEmacs window receiving input from the keyboard has the
-"keyboard focus" and is called the "selected window". The selected
-window contains the cursor, which indicates the insertion point. If
-you are working in an environment that permits multiple XEmacs frames,
-and you move the focus from one XEmacs frame into another, the selected
-window is the one that was last selected in that frame.
-
- The same text can be displayed simultaneously in several XEmacs
-windows, which can be in different XEmacs frames. If you alter the text
-in an XEmacs buffer by editing it in one XEmacs window, the changes are
-visible in all XEmacs windows containing that buffer.
-
-* Menu:
-
-* Point:: The place in the text where editing commands operate.
-* Echo Area:: Short messages appear at the bottom of the frame.
-* Mode Line:: Interpreting the mode line.
-* XEmacs under X:: Some information on using XEmacs under the X
- Window System.
-
-\1f
-File: xemacs.info, Node: Point, Next: Echo Area, Prev: Frame, Up: Frame
-
-Point
-=====
-
- When XEmacs is running, the cursor shows the location at which
-editing commands will take effect. This location is called "point".
-You can use keystrokes or the mouse cursor to move point through the
-text and edit the text at different places.
-
- While the cursor appears to point AT a character, you should think
-of point as BETWEEN two characters: it points BEFORE the character on
-which the cursor appears. The exception is at the end of the line,
-where the cursor appears after the last character of the line. Where
-the display is capable, the cursor at the end of the line will appear
-differently from a cursor over whitespace at the end of the line. (In
-an X Windows frame, the end-of-line cursor is half the width of a
-within-line cursor.) Sometimes people speak of "the cursor" when they
-mean "point," or speak of commands that move point as "cursor motion"
-commands.
-
- Each XEmacs frame has only one cursor. When output is in progress,
-the cursor must appear where the typing is being done. This does not
-mean that point is moving. It is only that XEmacs has no way to show
-you the location of point except when the terminal is idle.
-
- If you are editing several files in XEmacs, each file has its own
-point location. A file that is not being displayed remembers where
-point is. Point becomes visible at the correct location when you look
-at the file again.
-
- When there are multiple text windows, each window has its own point
-location. The cursor shows the location of point in the selected
-window. The visible cursor also shows you which window is selected. If
-the same buffer appears in more than one window, point can be moved in
-each window independently.
-
- The term `point' comes from the character `.', which was the command
-in TECO (the language in which the original Emacs was written) for
-accessing the value now called `point'.
-
-\1f
-File: xemacs.info, Node: Echo Area, Next: Mode Line, Prev: Point, Up: Frame
-
-The Echo Area
-=============
-
- The line at the bottom of the frame (below the mode line) is the
-"echo area". XEmacs uses this area to communicate with the user:
-
- * "Echoing" means printing out the characters that the user types.
- XEmacs never echoes single-character commands. Multi-character
- commands are echoed only if you pause while typing them: As soon
- as you pause for more than one second in the middle of a command,
- all the characters of the command so far are echoed. This is
- intended to "prompt" you for the rest of the command. Once
- echoing has started, the rest of the command is echoed immediately
- as you type it. This behavior is designed to give confident users
- fast response, while giving hesitant users maximum feedback. You
- can change this behavior by setting a variable (*note Display
- Vars::.).
-
- * If you issue a command that cannot be executed, XEmacs may print
- an "error message" in the echo area. Error messages are
- accompanied by a beep or by flashing the frame. Any input you
- have typed ahead is thrown away when an error happens.
-
- * Some commands print informative messages in the echo area. These
- messages look similar to error messages, but are not announced
- with a beep and do not throw away input. Sometimes a message
- tells you what the command has done, when this is not obvious from
- looking at the text being edited. Sometimes the sole purpose of a
- command is to print a message giving you specific information.
- For example, the command `C-x =' is used to print a message
- describing the character position of point in the text and its
- current column in the window. Commands that take a long time
- often display messages ending in `...' while they are working, and
- add `done' at the end when they are finished.
-
- * The echo area is also used to display the "minibuffer", a window
- that is used for reading arguments to commands, such as the name
- of a file to be edited. When the minibuffer is in use, the echo
- area displays with a prompt string that usually ends with a colon.
- The cursor appears after the prompt. You can always get out of
- the minibuffer by typing `C-g'. *Note Minibuffer::.
-