Mercurial > hg > xemacs-beta
diff man/xemacs/xemacs.texi @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | ac2d302a0011 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/man/xemacs/xemacs.texi Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,1107 @@ + +\input ../texinfo @c -*-texinfo-*- +@setfilename ../../info/xemacs.info +@comment node-name, next, previous, up + + +@ifinfo +This file documents the XEmacs editor. + +Copyright (C) 1985, 1986, 1988 Richard M. Stallman. +Copyright @copyright{} 1991, 1992, 1993, 1994 Lucid, Inc. +Copyright @copyright{} 1993, 1994 Sun Microsystems, Inc. +Copyright @copyright{} 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. + +@ignore +Permission is granted to process this file through Tex and print the +results, provided the printed document carries copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). + +@end ignore +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. +@end ifinfo +@c +@setchapternewpage odd +@settitle XEmacs User's Manual +@c +@titlepage +@sp 6 +@center @titlefont{XEmacs User's Manual} +@sp 4 +@sp 1 +@sp 1 +@center July 1994 +@center (General Public License upgraded, January 1991) +@sp 5 +@center Richard Stallman +@sp 1 +@center Lucid, Inc. +@sp 1 +@center and +@sp 1 +@center Ben Wing +@page +@vskip 0pt plus 1filll +Copyright @copyright{} 1985, 1986, 1988 Richard M. Stallman. + +Copyright @copyright{} 1991, 1992, 1993, 1994 Lucid, Inc. + +Copyright @copyright{} 1993, 1994 Sun Microsystems, Inc. + +Copyright @copyright{} 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. +@end titlepage +@page +@ifinfo +@node Top, License,, (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 19.13. + +This manual is intended as a detailed reference to XEmacs. If +you are looking for an introductory manual, see the New User's +Guide. + +@end ifinfo +@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. + +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. + +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. +* 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 @key{ESC} to represent @key{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. + +Tag Tables + +* Tag Syntax:: +* Create Tag Table:: +* Select Tag Table:: +* Find Tag:: +* Tags Search:: +* Tags Stepping:: +* List Tags:: + +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. + +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 @file{.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. +* 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, @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. + +@end menu + +@iftex +@unnumbered Preface + + This manual documents the use and simple customization of the XEmacs +editor. The reader is not expected to be a programmer to use this +editor, and simple customizations do not require programming skills either. +Users who are not interested in customizing XEmacs can ignore the scattered +customization hints. + + This document is primarily a reference manual, but it can also be used as a +primer. However, if you are new to XEmacs, consider using the on-line, +learn-by-doing tutorial, which you get by running XEmacs and typing +@kbd{C-h t}. With it, you learn XEmacs by using XEmacs on a specially +designed file which describes commands, tells you when to try them, +and then explains the results you see. Using the tutorial gives a more vivid +introduction than the printed manual. Also consider reading the XEmacs +New User's Guide, which is intended specifically as an introductory +manual rather than as a reference guide. + + On first reading, just skim chapters one and two, which describe the +notational conventions of the manual and the general appearance of the +XEmacs display frame. Note which questions are answered in these chapters, +so you can refer back later. After reading chapter four you should +practice the commands there. The next few chapters describe fundamental +techniques and concepts that are used constantly. You need to understand +them thoroughly, experimenting with them if necessary. + + To find the documentation on a particular command, look in the index. +Keys (character commands) and command names have separate indexes. There +is also a glossary, with a cross reference for each term. + +@ignore + If you know vaguely what the command +does, look in the command summary. The command summary contains a line or +two about each command, and a cross reference to the section of the +manual that describes the command in more detail; related commands +are grouped together. +@end ignore + + This manual comes in two forms: the published form and the Info form. +The Info form is for on-line perusal with the INFO program; it is +distributed along with XEmacs. Both forms contain substantially the +same text and are generated from a common source file, which is also +distributed along with XEmacs. + + XEmacs is a member of the Emacs editor family. There are many Emacs +editors, all sharing common principles of organization. For information on +the underlying philosophy of Emacs and the lessons learned from its +development, write for a copy of AI memo 519a, ``Emacs, the Extensible, +Customizable Self-Documenting Display Editor'', to Publications Department, +Artificial Intelligence Lab, 545 Tech Square, Cambridge, MA 02139, USA. At +last report they charge $2.25 per copy. Another useful publication is LCS +TM-165, ``A Cookbook for an Emacs'', by Craig Finseth, available from +Publications Department, Laboratory for Computer Science, 545 Tech Square, +Cambridge, MA 02139, USA. The price today is $3. + +This manual is for XEmacs installed on UNIX systems. XEmacs also +exists on Microsoft Windows and Windows NT as Win-Emacs (which is +actually based on Lucid Emacs 19.6, an older incarnation of XEmacs). +@end iftex + +@comment node-name, next, previous, up +@node License, Distrib, Top, Top +@unnumbered GNU GENERAL PUBLIC LICENSE +@center Version 1, February 1989 +@cindex license to copy XEmacs +@cindex General Public License + +@display +Copyright @copyright{} 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. +@end display + +@unnumberedsec 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. + +@iftex +@unnumberedsec TERMS AND CONDITIONS +@end iftex +@ifinfo +@center TERMS AND CONDITIONS +@end ifinfo + +@enumerate +@item +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''. + +@item +@cindex Distribution +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. + +@item +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: + +@itemize @bullet +@item +cause the modified files to carry prominent notices stating that +you changed the files and the date of any change; and + +@item +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). + +@item +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. + +@item +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. +@end itemize + +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. + +@item +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: + +@itemize @bullet +@item +accompany it with the complete corresponding machine-readable +source code, which must be distributed under the terms of +Paragraphs 1 and 2 above; or, + +@item +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, + +@item +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.) +@end itemize + +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. + +@item +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. + +@item +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. + +@item +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. + +@page +@item +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. + +@item +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. + +@iftex +@heading NO WARRANTY +@end iftex +@ifinfo +@center NO WARRANTY +@end ifinfo + +@item +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. + +@item +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 enumerate + +@iftex +@heading END OF TERMS AND CONDITIONS +@end iftex +@ifinfo +@center END OF TERMS AND CONDITIONS +@end ifinfo + +@page +@unnumberedsec 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. + +@smallexample +@var{one line to give the program's name and a brief idea of what it does.} +Copyright (C) 19@var{yy} @var{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. +@end smallexample + +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: + +@smallexample +Gnomovision version 69, Copyright (C) 19@var{yy} @var{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. +@end smallexample + +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. + +@page +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: + +@example +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. + +@var{signature of Ty Coon}, 1 April 1989 +Ty Coon, President of Vice +@end example + +That's all there is to it! + +@comment node-name, next, previous, up +@node Distrib, Intro, License, Top +@unnumbered Distribution + +XEmacs is @dfn{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 @file{ftp.xemacs.org} in the directory +@file{/pub/xemacs}. It can also be found at numerous other archive +sites around the world; check the file @file{etc/DISTRIB} in an XEmacs +distribution for the latest known list. + + +@unnumberedsec Getting Other Versions of Emacs + +The Free Software Foundation's version of Emacs (called @dfn{FSF Emacs} +in this manual and often referred to as @dfn{GNU Emacs}) is available +by anonymous FTP from @file{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 @file{ftp.netcom.com} +in the directory @file{/pub/pe/pearl}, or from @file{ftp.cica.indiana.edu} +as the files @file{wemdemo*.zip} in the directory @file{/pub/pc/win3/demo}. + +@node Intro, Glossary, Distrib, Top +@unnumbered 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 @dfn{FSF Emacs} in this manual). XEmacs also +comes standard with a great number of useful packages. + + We say that XEmacs is a @dfn{display} editor because normally the text +being edited is visible on the screen and is updated automatically as you +type. @xref{Frame,Display}. + + We call XEmacs a @dfn{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. @xref{Basic,Real-time,Basic Editing}. + + 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. + + @dfn{Self-documenting} means that at any time you can type a special +character, @kbd{Control-h}, to find out what your options are. You can +also use @kbd{C-h} to find out what a command does, or to find all the +commands relevant to a topic. @xref{Help}. + + @dfn{Customizable} means you can change the definitions of XEmacs +commands. For example, if you use a programming language in +which comments start with @samp{<**} and end with @samp{**>}, you can tell +the XEmacs comment manipulation commands to use those strings +(@pxref{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. @xref{Customization}. + + @dfn{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. + +@include frame.texi +@include keystrokes.texi +@include menus.texi +@include entering.texi +@include cmdargs.texi +@include basic.texi +@include undo.texi +@include mini.texi +@include m-x.texi +@include help.texi +@include mark.texi +@include mouse.texi +@include killing.texi +@include regs.texi +@include display.texi +@include search.texi +@include fixit.texi +@include files.texi +@include buffers.texi +@include windows.texi +@include major.texi +@include indent.texi +@include text.texi +@include programs.texi +@include building.texi +@include abbrevs.texi +@include picture.texi +@include sending.texi +@include reading.texi +@include calendar.texi +@include misc.texi +@include custom.texi +@include trouble.texi + +@include new.texi +@include glossary.texi +@include gnu.texi + +@node Key Index, Command Index, Manifesto, Top +@unnumbered Key (Character) Index +@printindex ky + +@node Command Index, Variable Index, Key Index, Top +@unnumbered Command and Function Index +@printindex fn + +@node Variable Index, Concept Index, Command Index, Top +@unnumbered Variable Index +@printindex vr + +@node Concept Index, Frame, Variable Index, Top +@unnumbered Concept Index +@printindex cp + +@summarycontents +@contents +@bye + + +@c Remember to delete these lines before creating the info file. +@iftex +@lucidbook +@bindingoffset = 0.5in +@parindent = 0pt +@end iftex