diff options
| author | Andrew Innes | 1999-01-17 19:04:54 +0000 |
|---|---|---|
| committer | Andrew Innes | 1999-01-17 19:04:54 +0000 |
| commit | 3f973d9b8c7f6fda3c647eee02c3cab9a6aa8368 (patch) | |
| tree | 5e463a788ee325a8d1e0e65fd9551e3f78bb3062 | |
| parent | ca19ad677829eb866b8ac52fcb1ac948682c3336 (diff) | |
| download | emacs-3f973d9b8c7f6fda3c647eee02c3cab9a6aa8368.tar.gz emacs-3f973d9b8c7f6fda3c647eee02c3cab9a6aa8368.zip | |
Initial revision
| -rw-r--r-- | man/emacs.texi | 1472 |
1 files changed, 1472 insertions, 0 deletions
diff --git a/man/emacs.texi b/man/emacs.texi new file mode 100644 index 00000000000..ed6f4b83d17 --- /dev/null +++ b/man/emacs.texi | |||
| @@ -0,0 +1,1472 @@ | |||
| 1 | \input texinfo | ||
| 2 | |||
| 3 | @setchapternewpage odd | ||
| 4 | @settitle GNU Emacs Manual | ||
| 5 | @setfilename ../info/emacs | ||
| 6 | @synindex pg cp | ||
| 7 | |||
| 8 | @ifinfo | ||
| 9 | @c The edition number appears in several places in this file | ||
| 10 | This is the thirteenth edition of the @cite{GNU Emacs Manual}, | ||
| 11 | updated for Emacs version 20.4 | ||
| 12 | @c Please REMEMBER to update edition number in *three* places in this file. | ||
| 13 | |||
| 14 | @dircategory Editors | ||
| 15 | @direntry | ||
| 16 | * Emacs: (emacs). The extensible self-documenting text editor. | ||
| 17 | @end direntry | ||
| 18 | |||
| 19 | Published by the Free Software Foundation | ||
| 20 | 59 Temple Place, Suite 330 | ||
| 21 | Boston, MA 02111-1307 USA | ||
| 22 | |||
| 23 | Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998 | ||
| 24 | Free Software Foundation, Inc. | ||
| 25 | |||
| 26 | Permission is granted to make and distribute verbatim copies of | ||
| 27 | this manual provided the copyright notice and this permission notice | ||
| 28 | are preserved on all copies. | ||
| 29 | |||
| 30 | @ignore | ||
| 31 | Permission is granted to process this file through Tex and print the | ||
| 32 | results, provided the printed document carries copying permission | ||
| 33 | notice identical to this one except for the removal of this paragraph | ||
| 34 | (this paragraph not being relevant to the printed manual). | ||
| 35 | |||
| 36 | @end ignore | ||
| 37 | Permission is granted to copy and distribute modified versions of this | ||
| 38 | manual under the conditions for verbatim copying, provided also that the | ||
| 39 | sections entitled ``The GNU Manifesto'', ``Distribution'' and ``GNU | ||
| 40 | General Public License'' are included exactly as in the original, and | ||
| 41 | provided that the entire resulting derived work is distributed under the | ||
| 42 | terms of a permission notice identical to this one. | ||
| 43 | |||
| 44 | Permission is granted to copy and distribute translations of this manual | ||
| 45 | into another language, under the above conditions for modified versions, | ||
| 46 | except that the sections entitled ``The GNU Manifesto'', | ||
| 47 | ``Distribution'' and ``GNU General Public License'' may be included in a | ||
| 48 | translation approved by the Free Software Foundation instead of in the | ||
| 49 | original English. | ||
| 50 | @end ifinfo | ||
| 51 | @c | ||
| 52 | @c comment out this line if you do NOT want to have indication that | ||
| 53 | @c an index entry appears in the texinfo file near this line of text. | ||
| 54 | @c this line should definitely be commented out for printing a master | ||
| 55 | @c and for making the version to go on the floppy disk. | ||
| 56 | @c | ||
| 57 | @c @include /gd/gnu/doc/margins-comment-format.texi | ||
| 58 | |||
| 59 | @c in general, keep the following line commented out, unless doing a | ||
| 60 | @c copy of this manual that will be published. the manual should go | ||
| 61 | @c onto the distribution in the full, 8.5 x 11" size. | ||
| 62 | |||
| 63 | @smallbook | ||
| 64 | |||
| 65 | @iftex | ||
| 66 | @kbdinputstyle code | ||
| 67 | |||
| 68 | @shorttitlepage GNU Emacs Manual | ||
| 69 | @end iftex | ||
| 70 | @titlepage | ||
| 71 | @sp 6 | ||
| 72 | @center @titlefont{GNU Emacs Manual} | ||
| 73 | @sp 4 | ||
| 74 | @center Thirteenth Edition, Updated for Emacs Version 20.4 | ||
| 75 | @sp 5 | ||
| 76 | @center Richard Stallman | ||
| 77 | @page | ||
| 78 | @vskip 0pt plus 1filll | ||
| 79 | Copyright @copyright{} 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998 | ||
| 80 | Free Software Foundation, Inc. | ||
| 81 | @sp 2 | ||
| 82 | Thirteenth Edition @* | ||
| 83 | Updated for Emacs Version 20.4, @* | ||
| 84 | August 1998 | ||
| 85 | |||
| 86 | ISBN 1-882114-06-X | ||
| 87 | @sp 1 | ||
| 88 | Published by the Free Software Foundation @* | ||
| 89 | 59 Temple Place, Suite 330 @* | ||
| 90 | Boston, MA 02111-1307 USA | ||
| 91 | @sp 1 | ||
| 92 | Permission is granted to make and distribute verbatim copies of | ||
| 93 | this manual provided the copyright notice and this permission notice | ||
| 94 | are preserved on all copies. | ||
| 95 | |||
| 96 | Permission is granted to copy and distribute modified versions of this | ||
| 97 | manual under the conditions for verbatim copying, provided also that the | ||
| 98 | sections entitled ``The GNU Manifesto'', ``Distribution'' and ``GNU | ||
| 99 | General Public License'' are included exactly as in the original, and | ||
| 100 | provided that the entire resulting derived work is distributed under the | ||
| 101 | terms of a permission notice identical to this one. | ||
| 102 | |||
| 103 | Permission is granted to copy and distribute translations of this manual | ||
| 104 | into another language, under the above conditions for modified versions, | ||
| 105 | except that the sections entitled ``The GNU Manifesto'', | ||
| 106 | ``Distribution'' and ``GNU General Public License'' may be included in a | ||
| 107 | translation approved by the Free Software Foundation instead of in the | ||
| 108 | original English. | ||
| 109 | |||
| 110 | @sp 2 | ||
| 111 | Cover art by Etienne Suvasa. | ||
| 112 | |||
| 113 | @end titlepage | ||
| 114 | @page | ||
| 115 | @ifinfo | ||
| 116 | @node Top, Distrib, (dir), (dir) | ||
| 117 | @top The Emacs Editor | ||
| 118 | |||
| 119 | Emacs is the extensible, customizable, self-documenting real-time | ||
| 120 | display editor. This Info file describes how to edit with Emacs and | ||
| 121 | some of how to customize it; it corresponds to GNU Emacs version 20.4. | ||
| 122 | For information on extending Emacs, see @ref{,Emacs Lisp,, elisp, The | ||
| 123 | Emacs Lisp Reference Manual}. | ||
| 124 | @end ifinfo | ||
| 125 | |||
| 126 | @ignore | ||
| 127 | These subcategories have been deleted for simplicity | ||
| 128 | and to avoid conflicts. | ||
| 129 | Completion | ||
| 130 | Backup Files | ||
| 131 | Auto-Saving: Protection Against Disasters | ||
| 132 | Snapshots | ||
| 133 | Text Mode | ||
| 134 | Outline Mode | ||
| 135 | @TeX{} Mode | ||
| 136 | Formatted Text | ||
| 137 | Fortran Mode | ||
| 138 | Fortran Indentation | ||
| 139 | Shell Command History | ||
| 140 | |||
| 141 | The ones for Dired and Rmail have had the items turned into :: items | ||
| 142 | to avoid conflicts. | ||
| 143 | Also Running Shell Commands from Emacs | ||
| 144 | and Sending Mail and Registers and Minibuffer. | ||
| 145 | @end ignore | ||
| 146 | |||
| 147 | @menu | ||
| 148 | * Distrib:: How to get the latest Emacs distribution. | ||
| 149 | * Copying:: The GNU General Public License gives you permission | ||
| 150 | to redistribute GNU Emacs on certain terms; | ||
| 151 | it also explains that there is no warranty. | ||
| 152 | * Intro:: An introduction to Emacs concepts. | ||
| 153 | * Glossary:: The glossary. | ||
| 154 | * Antinews:: Information about Emacs version 19. | ||
| 155 | * MS-DOS:: Using Emacs on MS-DOS (otherwise known as "MS-DOG"). | ||
| 156 | * Manifesto:: What's GNU? Gnu's Not Unix! | ||
| 157 | * Acknowledgments:: Major contributors to GNU Emacs. | ||
| 158 | |||
| 159 | Indexes (nodes containing large menus) | ||
| 160 | * Key Index:: An item for each standard Emacs key sequence. | ||
| 161 | * Command Index:: An item for each command name. | ||
| 162 | * Variable Index:: An item for each documented variable. | ||
| 163 | * Concept Index:: An item for each concept. | ||
| 164 | |||
| 165 | Important General Concepts | ||
| 166 | * Screen:: How to interpret what you see on the screen. | ||
| 167 | * User Input:: Kinds of input events (characters, buttons, | ||
| 168 | function keys). | ||
| 169 | * Keys:: Key sequences: what you type to request one | ||
| 170 | editing action. | ||
| 171 | * Commands:: Named functions run by key sequences to do editing. | ||
| 172 | * Text Characters:: Character set for text (the contents of buffers | ||
| 173 | and strings). | ||
| 174 | * Entering Emacs:: Starting Emacs from the shell. | ||
| 175 | * Exiting:: Stopping or killing Emacs. | ||
| 176 | * Command Arguments:: Hairy startup options. | ||
| 177 | |||
| 178 | Fundamental Editing Commands | ||
| 179 | * Basic:: The most basic editing commands. | ||
| 180 | * Minibuffer:: Entering arguments that are prompted for. | ||
| 181 | * M-x:: Invoking commands by their names. | ||
| 182 | * Help:: Commands for asking Emacs about its commands. | ||
| 183 | |||
| 184 | Important Text-Changing Commands | ||
| 185 | * Mark:: The mark: how to delimit a ``region'' of text. | ||
| 186 | * Killing:: Killing text. | ||
| 187 | * Yanking:: Recovering killed text. Moving text. | ||
| 188 | * Accumulating Text:: Other ways of copying text. | ||
| 189 | * Rectangles:: Operating on the text inside a rectangle on the screen. | ||
| 190 | * Registers:: Saving a text string or a location in the buffer. | ||
| 191 | * Display:: Controlling what text is displayed. | ||
| 192 | * Search:: Finding or replacing occurrences of a string. | ||
| 193 | * Fixit:: Commands especially useful for fixing typos. | ||
| 194 | |||
| 195 | Major Structures of Emacs | ||
| 196 | * Files:: All about handling files. | ||
| 197 | * Buffers:: Multiple buffers; editing several files at once. | ||
| 198 | * Windows:: Viewing two pieces of text at once. | ||
| 199 | * Frames:: Running the same Emacs session in multiple X windows. | ||
| 200 | * International:: Using non-ASCII character sets. | ||
| 201 | |||
| 202 | Advanced Features | ||
| 203 | * Major Modes:: Text mode vs. Lisp mode vs. C mode ... | ||
| 204 | * Indentation:: Editing the white space at the beginnings of lines. | ||
| 205 | * Text:: Commands and modes for editing English. | ||
| 206 | * Programs:: Commands and modes for editing programs. | ||
| 207 | * Building:: Compiling, running and debugging programs. | ||
| 208 | * Abbrevs:: How to define text abbreviations to reduce | ||
| 209 | the number of characters you must type. | ||
| 210 | * Picture:: Editing pictures made up of characters | ||
| 211 | using the quarter-plane screen model. | ||
| 212 | * Sending Mail:: Sending mail in Emacs. | ||
| 213 | * Rmail:: Reading mail in Emacs. | ||
| 214 | * Dired:: You can ``edit'' a directory to manage files in it. | ||
| 215 | * Calendar/Diary:: The calendar and diary facilities. | ||
| 216 | * Gnus:: How to read netnews with Emacs. | ||
| 217 | * Shell:: Executing shell commands from Emacs. | ||
| 218 | * Emacs Server:: Using Emacs as an editing server for @code{mail}, etc. | ||
| 219 | * Hardcopy:: Printing buffers or regions. | ||
| 220 | * Postscript:: Printing buffers or regions as Postscript. | ||
| 221 | * Postscript Variables:: | ||
| 222 | Customizing the Postscript printing commands. | ||
| 223 | * Sorting:: Sorting lines, paragraphs or pages within Emacs. | ||
| 224 | * Narrowing:: Restricting display and editing to a portion | ||
| 225 | of the buffer. | ||
| 226 | * Two-Column:: Splitting apart columns to edit them | ||
| 227 | in side-by-side windows. | ||
| 228 | * Editing Binary Files:: | ||
| 229 | Using Hexl mode to edit binary files. | ||
| 230 | * Saving Emacs Sessions:: | ||
| 231 | Saving Emacs state from one session to the next. | ||
| 232 | * Recursive Edit:: A command can allow you to do editing | ||
| 233 | "within the command". This is called a | ||
| 234 | `recursive editing level'. | ||
| 235 | * Emulation:: Emulating some other editors with Emacs. | ||
| 236 | * Dissociated Press:: Dissociating text for fun. | ||
| 237 | * Amusements:: Various games and hacks. | ||
| 238 | * Customization:: Modifying the behavior of Emacs. | ||
| 239 | |||
| 240 | Recovery from Problems | ||
| 241 | * Quitting:: Quitting and aborting. | ||
| 242 | * Lossage:: What to do if Emacs is hung or malfunctioning. | ||
| 243 | * Bugs:: How and when to report a bug. | ||
| 244 | * Contributing:: How to contribute improvements to Emacs. | ||
| 245 | * Service:: How to get help for your own Emacs needs. | ||
| 246 | |||
| 247 | Here are some other nodes which are really inferiors of the ones | ||
| 248 | already listed, mentioned here so you can get to them in one step: | ||
| 249 | |||
| 250 | --- The Detailed Node Listing --- | ||
| 251 | |||
| 252 | The Organization of the Screen | ||
| 253 | |||
| 254 | * Point:: The place in the text where editing commands operate. | ||
| 255 | * Echo Area:: Short messages appear at the bottom of the screen. | ||
| 256 | * Mode Line:: Interpreting the mode line. | ||
| 257 | * Menu Bar:: How to use the menu bar. | ||
| 258 | |||
| 259 | Basic Editing Commands | ||
| 260 | |||
| 261 | * Inserting Text:: Inserting text by simply typing it. | ||
| 262 | * Moving Point:: How to move the cursor to the place where you want to | ||
| 263 | change something. | ||
| 264 | * Erasing:: Deleting and killing text. | ||
| 265 | * Undo:: Undoing recent changes in the text. | ||
| 266 | * Files: Basic Files. Visiting, creating, and saving files. | ||
| 267 | * Help: Basic Help. Asking what a character does. | ||
| 268 | * Blank Lines:: Commands to make or delete blank lines. | ||
| 269 | * Continuation Lines:: Lines too wide for the screen. | ||
| 270 | * Position Info:: What page, line, row, or column is point on? | ||
| 271 | * Arguments:: Numeric arguments for repeating a command. | ||
| 272 | |||
| 273 | The Minibuffer | ||
| 274 | |||
| 275 | * Minibuffer File:: Entering file names with the minibuffer. | ||
| 276 | * Minibuffer Edit:: How to edit in the minibuffer. | ||
| 277 | * Completion:: An abbreviation facility for minibuffer input. | ||
| 278 | * Minibuffer History:: Reusing recent minibuffer arguments. | ||
| 279 | * Repetition:: Re-executing commands that used the minibuffer. | ||
| 280 | |||
| 281 | Help | ||
| 282 | |||
| 283 | * Help Summary:: Brief list of all Help commands. | ||
| 284 | * Key Help:: Asking what a key does in Emacs. | ||
| 285 | * Name Help:: Asking about a command, variable or function name. | ||
| 286 | * Apropos:: Asking what pertains to a given topic. | ||
| 287 | * Library Keywords:: Finding Lisp libraries by keywords (topics). | ||
| 288 | * Language Help:: Help relating to international language support. | ||
| 289 | * Misc Help:: Other help commands. | ||
| 290 | |||
| 291 | The Mark and the Region | ||
| 292 | |||
| 293 | * Setting Mark:: Commands to set the mark. | ||
| 294 | * Transient Mark:: How to make Emacs highlight the region-- | ||
| 295 | when there is one. | ||
| 296 | * Using Region:: Summary of ways to operate on contents of the region. | ||
| 297 | * Marking Objects:: Commands to put region around textual units. | ||
| 298 | * Mark Ring:: Previous mark positions saved so you can go back there. | ||
| 299 | * Global Mark Ring:: Previous mark positions in various buffers. | ||
| 300 | |||
| 301 | Deletion and Killing | ||
| 302 | |||
| 303 | * Deletion:: Commands for deleting small amounts of text and | ||
| 304 | blank areas. | ||
| 305 | * Killing by Lines:: How to kill entire lines of text at one time. | ||
| 306 | * Other Kill Commands:: Commands to kill large regions of text and | ||
| 307 | syntactic units such as words and sentences. | ||
| 308 | |||
| 309 | Yanking | ||
| 310 | |||
| 311 | * Kill Ring:: Where killed text is stored. Basic yanking. | ||
| 312 | * Appending Kills:: Several kills in a row all yank together. | ||
| 313 | * Earlier Kills:: Yanking something killed some time ago. | ||
| 314 | |||
| 315 | Registers | ||
| 316 | |||
| 317 | * RegPos:: Saving positions in registers. | ||
| 318 | * RegText:: Saving text in registers. | ||
| 319 | * RegRect:: Saving rectangles in registers. | ||
| 320 | * RegConfig:: Saving window configurations in registers. | ||
| 321 | * RegFiles:: File names in registers. | ||
| 322 | * Bookmarks:: Bookmarks are like registers, but persistent. | ||
| 323 | |||
| 324 | Controlling the Display | ||
| 325 | |||
| 326 | * Scrolling:: Moving text up and down in a window. | ||
| 327 | * Horizontal Scrolling:: Moving text left and right in a window. | ||
| 328 | * Follow Mode:: Follow mode lets two windows scroll as one. | ||
| 329 | * Selective Display:: Hiding lines with lots of indentation. | ||
| 330 | * Optional Mode Line:: Optional mode line display features. | ||
| 331 | * Text Display:: How text is normally displayed. | ||
| 332 | * Display Vars:: Information on variables for customizing display. | ||
| 333 | |||
| 334 | Searching and Replacement | ||
| 335 | |||
| 336 | * Incremental Search:: Search happens as you type the string. | ||
| 337 | * Nonincremental Search:: Specify entire string and then search. | ||
| 338 | * Word Search:: Search for sequence of words. | ||
| 339 | * Regexp Search:: Search for match for a regexp. | ||
| 340 | * Regexps:: Syntax of regular expressions. | ||
| 341 | * Search Case:: To ignore case while searching, or not. | ||
| 342 | * Replace:: Search, and replace some or all matches. | ||
| 343 | * Other Repeating Search:: Operating on all matches for some regexp. | ||
| 344 | |||
| 345 | Replacement Commands | ||
| 346 | |||
| 347 | * Unconditional Replace:: Replacing all matches for a string. | ||
| 348 | * Regexp Replace:: Replacing all matches for a regexp. | ||
| 349 | * Replacement and Case:: How replacements preserve case of letters. | ||
| 350 | * Query Replace:: How to use querying. | ||
| 351 | |||
| 352 | Commands for Fixing Typos | ||
| 353 | |||
| 354 | * Kill Errors:: Commands to kill a batch of recently entered text. | ||
| 355 | * Transpose:: Exchanging two characters, words, lines, lists... | ||
| 356 | * Fixing Case:: Correcting case of last word entered. | ||
| 357 | * Spelling:: Apply spelling checker to a word or a whole buffer. | ||
| 358 | |||
| 359 | File Handling | ||
| 360 | |||
| 361 | * File Names:: How to type and edit file-name arguments. | ||
| 362 | * Visiting:: Visiting a file prepares Emacs to edit the file. | ||
| 363 | * Saving:: Saving makes your changes permanent. | ||
| 364 | * Reverting:: Reverting cancels all the changes not saved. | ||
| 365 | * Auto Save:: Auto Save periodically protects against loss of data. | ||
| 366 | * File Aliases:: Handling multiple names for one file. | ||
| 367 | * Version Control:: Version control systems (RCS, CVS and SCCS). | ||
| 368 | * Directories:: Creating, deleting, and listing file directories. | ||
| 369 | * Comparing Files:: Finding where two files differ. | ||
| 370 | * Misc File Ops:: Other things you can do on files. | ||
| 371 | * Compressed Files:: Accessing compressed files. | ||
| 372 | * Remote Files:: Accessing files on other sites. | ||
| 373 | * Quoted File Names:: Quoting special characters in file names. | ||
| 374 | |||
| 375 | Saving Files | ||
| 376 | |||
| 377 | * Backup:: How Emacs saves the old version of your file. | ||
| 378 | * Interlocking:: How Emacs protects against simultaneous editing | ||
| 379 | of one file by two users. | ||
| 380 | |||
| 381 | Version Control | ||
| 382 | |||
| 383 | * Introduction to VC:: How version control works in general. | ||
| 384 | * VC Mode Line:: How the mode line shows version control status. | ||
| 385 | * Basic VC Editing:: How to edit a file under version control. | ||
| 386 | * Old Versions:: Examining and comparing old versions. | ||
| 387 | * Secondary VC Commands:: The commands used a little less frequently. | ||
| 388 | * Branches:: Multiple lines of development. | ||
| 389 | * Snapshots:: Sets of file versions treated as a unit. | ||
| 390 | * Miscellaneous VC:: Various other commands and features of VC. | ||
| 391 | * Customizing VC:: Variables that change VC's behavior. | ||
| 392 | |||
| 393 | Using Multiple Buffers | ||
| 394 | |||
| 395 | * Select Buffer:: Creating a new buffer or reselecting an old one. | ||
| 396 | * List Buffers:: Getting a list of buffers that exist. | ||
| 397 | * Misc Buffer:: Renaming; changing read-onlyness; copying text. | ||
| 398 | * Kill Buffer:: Killing buffers you no longer need. | ||
| 399 | * Several Buffers:: How to go through the list of all buffers | ||
| 400 | and operate variously on several of them. | ||
| 401 | * Indirect Buffers:: An indirect buffer shares the text of another buffer. | ||
| 402 | |||
| 403 | Multiple Windows | ||
| 404 | |||
| 405 | * Basic Window:: Introduction to Emacs windows. | ||
| 406 | * Split Window:: New windows are made by splitting existing windows. | ||
| 407 | * Other Window:: Moving to another window or doing something to it. | ||
| 408 | * Pop Up Window:: Finding a file or buffer in another window. | ||
| 409 | * Force Same Window:: Forcing certain buffers to appear in the selected | ||
| 410 | window rather than in another window. | ||
| 411 | * Change Window:: Deleting windows and changing their sizes. | ||
| 412 | |||
| 413 | Frames and X Windows | ||
| 414 | |||
| 415 | * Mouse Commands:: Moving, cutting, and pasting, with the mouse. | ||
| 416 | * Secondary Selection:: Cutting without altering point and mark. | ||
| 417 | * Mouse References:: Using the mouse to select an item from a list. | ||
| 418 | * Menu Mouse Clicks:: Mouse clicks that bring up menus. | ||
| 419 | * Mode Line Mouse:: Mouse clicks on the mode line. | ||
| 420 | * Creating Frames:: Creating additional Emacs frames with various contents. | ||
| 421 | * Multiple Displays:: How one Emacs job can talk to several displays. | ||
| 422 | * Special Buffer Frames:: You can make certain buffers have their own frames. | ||
| 423 | * Frame Parameters:: Changing the colors and other modes of frames. | ||
| 424 | * Scroll Bars:: How to enable and disable scroll bars; how to use them. | ||
| 425 | * Menu Bars:: Enabling and disabling the menu bar. | ||
| 426 | * Faces:: How to change the display style using faces. | ||
| 427 | * Font Lock:: Minor mode for syntactic highlighting using faces. | ||
| 428 | * Support Modes:: Font Lock support modes make Font Lock faster. | ||
| 429 | * Misc X:: Iconifying and deleting frames. Region highlighting. | ||
| 430 | * Non-Window Terminals:: Multiple frames on terminals that show only one. | ||
| 431 | |||
| 432 | Font Lock Support Modes | ||
| 433 | |||
| 434 | * Fast Lock Mode:: Saving font information in files. | ||
| 435 | * Lazy Lock Mode:: Fontifying only text that is actually displayed. | ||
| 436 | * Fast or Lazy:: Which support mode is best for you? | ||
| 437 | |||
| 438 | International Character Set Support | ||
| 439 | |||
| 440 | * International Intro:: Basic concepts of multibyte characters. | ||
| 441 | * Enabling Multibyte:: Controlling whether to use multibyte characters. | ||
| 442 | * Language Environments:: Setting things up for the language you use. | ||
| 443 | * Input Methods:: Entering text characters not on your keyboard. | ||
| 444 | * Select Input Method:: Specifying your choice of input methods. | ||
| 445 | * Coding Systems:: Character set conversion when you read and | ||
| 446 | write files, and so on. | ||
| 447 | * Recognize Coding:: How Emacs figures out which conversion to use. | ||
| 448 | * Specify Coding:: Various ways to choose which conversion to use. | ||
| 449 | * Fontsets:: Fontsets are collections of fonts | ||
| 450 | that cover the whole spectrum of characters. | ||
| 451 | * Defining Fontsets:: Defining a new fontset. | ||
| 452 | * Single-Byte European Support:: | ||
| 453 | You can pick one European character set | ||
| 454 | to use without multibyte characters. | ||
| 455 | |||
| 456 | Major Modes | ||
| 457 | |||
| 458 | * Choosing Modes:: How major modes are specified or chosen. | ||
| 459 | |||
| 460 | Indentation | ||
| 461 | |||
| 462 | * Indentation Commands:: Various commands and techniques for indentation. | ||
| 463 | * Tab Stops:: You can set arbitrary "tab stops" and then | ||
| 464 | indent to the next tab stop when you want to. | ||
| 465 | * Just Spaces:: You can request indentation using just spaces. | ||
| 466 | |||
| 467 | Commands for Human Languages | ||
| 468 | |||
| 469 | * Words:: Moving over and killing words. | ||
| 470 | * Sentences:: Moving over and killing sentences. | ||
| 471 | * Paragraphs:: Moving over paragraphs. | ||
| 472 | * Pages:: Moving over pages. | ||
| 473 | * Filling:: Filling or justifying text. | ||
| 474 | * Case:: Changing the case of text. | ||
| 475 | * Text Mode:: The major modes for editing text files. | ||
| 476 | * Outline Mode:: Editing outlines. | ||
| 477 | * TeX Mode:: Editing input to the formatter TeX. | ||
| 478 | * Nroff Mode:: Editing input to the formatter nroff. | ||
| 479 | * Formatted Text:: Editing formatted text directly in WYSIWYG fashion. | ||
| 480 | |||
| 481 | Filling Text | ||
| 482 | |||
| 483 | * Auto Fill:: Auto Fill mode breaks long lines automatically. | ||
| 484 | * Fill Commands:: Commands to refill paragraphs and center lines. | ||
| 485 | * Fill Prefix:: Filling paragraphs that are indented | ||
| 486 | or in a comment, etc. | ||
| 487 | * Adaptive Fill:: How Emacs can determine the fill prefix automatically. | ||
| 488 | |||
| 489 | Editing Programs | ||
| 490 | |||
| 491 | * Program Modes:: Major modes for editing programs. | ||
| 492 | * Lists:: Expressions with balanced parentheses. | ||
| 493 | * List Commands:: The commands for working with list and sexps. | ||
| 494 | * Defuns:: Each program is made up of separate functions. | ||
| 495 | There are editing commands to operate on them. | ||
| 496 | * Program Indent:: Adjusting indentation to show the nesting. | ||
| 497 | * Matching:: Insertion of a close-delimiter flashes matching open. | ||
| 498 | * Comments:: Inserting, killing, and aligning comments. | ||
| 499 | * Balanced Editing:: Inserting two matching parentheses at once, etc. | ||
| 500 | * Symbol Completion:: Completion on symbol names of your program or language. | ||
| 501 | * Documentation:: Getting documentation of functions you plan to call. | ||
| 502 | * Change Log:: Maintaining a change history for your program. | ||
| 503 | * Tags:: Go directly to any function in your program in one | ||
| 504 | command. Tags remembers which file it is in. | ||
| 505 | * Emerge:: A convenient way of merging two versions of a program. | ||
| 506 | * C/Java Modes:: Special commands of C, C++, Objective-C and Java modes. | ||
| 507 | * Fortran:: Fortran mode and its special features. | ||
| 508 | * Asm Mode:: Asm mode and its special features. | ||
| 509 | |||
| 510 | Indentation for Programs | ||
| 511 | |||
| 512 | * Basic Indent:: Indenting a single line. | ||
| 513 | * Multi-line Indent:: Commands to reindent many lines at once. | ||
| 514 | * Lisp Indent:: Specifying how each Lisp function should be indented. | ||
| 515 | * C Indent:: Choosing an indentation style for C code. | ||
| 516 | |||
| 517 | Tags Tables | ||
| 518 | |||
| 519 | * Tag Syntax:: Tag syntax for various types of code and text files. | ||
| 520 | * Create Tags Table:: Creating a tags table with @code{etags}. | ||
| 521 | * Select Tags Table:: How to visit a tags table. | ||
| 522 | * Find Tag:: Commands to find the definition of a specific tag. | ||
| 523 | * Tags Search:: Using a tags table for searching and replacing. | ||
| 524 | * List Tags:: Listing and finding tags defined in a file. | ||
| 525 | |||
| 526 | Merging Files with Emerge | ||
| 527 | |||
| 528 | * Overview of Emerge:: How to start Emerge. Basic concepts. | ||
| 529 | * Submodes of Emerge:: Fast mode vs. Edit mode. | ||
| 530 | Skip Prefers mode and Auto Advance mode. | ||
| 531 | * State of Difference:: You do the merge by specifying state A or B | ||
| 532 | for each difference. | ||
| 533 | * Merge Commands:: Commands for selecting a difference, | ||
| 534 | changing states of differences, etc. | ||
| 535 | * Exiting Emerge:: What to do when you've finished the merge. | ||
| 536 | * Combining in Emerge:: How to keep both alternatives for a difference. | ||
| 537 | * Fine Points of Emerge:: Misc. | ||
| 538 | |||
| 539 | Compiling and Testing Programs | ||
| 540 | |||
| 541 | * Compilation:: Compiling programs in languages other | ||
| 542 | than Lisp (C, Pascal, etc.). | ||
| 543 | * Compilation Mode:: The mode for visiting compiler errors. | ||
| 544 | * Compilation Shell:: Customizing your shell properly | ||
| 545 | for use in the compilation buffer. | ||
| 546 | * Debuggers:: Running symbolic debuggers for non-Lisp programs. | ||
| 547 | * Executing Lisp:: Various modes for editing Lisp programs, | ||
| 548 | with different facilities for running | ||
| 549 | the Lisp programs. | ||
| 550 | * Lisp Libraries:: Creating Lisp programs to run in Emacs. | ||
| 551 | * Lisp Interaction:: Executing Lisp in an Emacs buffer. | ||
| 552 | * Lisp Eval:: Executing a single Lisp expression in Emacs. | ||
| 553 | * External Lisp:: Communicating through Emacs with a separate Lisp. | ||
| 554 | |||
| 555 | Running Debuggers Under Emacs | ||
| 556 | |||
| 557 | * Starting GUD:: How to start a debugger subprocess. | ||
| 558 | * Debugger Operation:: Connection between the debugger and source buffers. | ||
| 559 | * Commands of GUD:: Key bindings for common commands. | ||
| 560 | * GUD Customization:: Defining your own commands for GUD. | ||
| 561 | |||
| 562 | Abbrevs | ||
| 563 | |||
| 564 | * Abbrev Concepts:: Fundamentals of defined abbrevs. | ||
| 565 | * Defining Abbrevs:: Defining an abbrev, so it will expand when typed. | ||
| 566 | * Expanding Abbrevs:: Controlling expansion: prefixes, canceling expansion. | ||
| 567 | * Editing Abbrevs:: Viewing or editing the entire list of defined abbrevs. | ||
| 568 | * Saving Abbrevs:: Saving the entire list of abbrevs for another session. | ||
| 569 | * Dynamic Abbrevs:: Abbreviations for words already in the buffer. | ||
| 570 | |||
| 571 | Editing Pictures | ||
| 572 | |||
| 573 | * Basic Picture:: Basic concepts and simple commands of Picture Mode. | ||
| 574 | * Insert in Picture:: Controlling direction of cursor motion | ||
| 575 | after "self-inserting" characters. | ||
| 576 | * Tabs in Picture:: Various features for tab stops and indentation. | ||
| 577 | * Rectangles in Picture:: Clearing and superimposing rectangles. | ||
| 578 | |||
| 579 | Sending Mail | ||
| 580 | |||
| 581 | * Mail Format:: Format of the mail being composed. | ||
| 582 | * Mail Headers:: Details of permitted mail header fields. | ||
| 583 | * Mail Aliases:: Abbreviating and grouping mail addresses. | ||
| 584 | * Mail Mode:: Special commands for editing mail being composed. | ||
| 585 | * Distracting NSA:: How to distract the NSA's attention. | ||
| 586 | * Mail Methods:: Using alternative mail-composition methods. | ||
| 587 | |||
| 588 | Reading Mail with Rmail | ||
| 589 | |||
| 590 | * Rmail Basics:: Basic concepts of Rmail, and simple use. | ||
| 591 | * Rmail Scrolling:: Scrolling through a message. | ||
| 592 | * Rmail Motion:: Moving to another message. | ||
| 593 | * Rmail Deletion:: Deleting and expunging messages. | ||
| 594 | * Rmail Inbox:: How mail gets into the Rmail file. | ||
| 595 | * Rmail Files:: Using multiple Rmail files. | ||
| 596 | * Rmail Output:: Copying message out to files. | ||
| 597 | * Rmail Labels:: Classifying messages by labeling them. | ||
| 598 | * Rmail Attributes:: Certain standard labels, called attributes. | ||
| 599 | * Rmail Reply:: Sending replies to messages you are viewing. | ||
| 600 | * Rmail Summary:: Summaries show brief info on many messages. | ||
| 601 | * Rmail Sorting:: Sorting messages in Rmail. | ||
| 602 | * Rmail Display:: How Rmail displays a message; customization. | ||
| 603 | * Rmail Editing:: Editing message text and headers in Rmail. | ||
| 604 | * Rmail Digest:: Extracting the messages from a digest message. | ||
| 605 | * Out of Rmail:: Converting an Rmail file to mailbox format. | ||
| 606 | * Rmail Rot13:: Reading messages encoded in the rot13 code. | ||
| 607 | * Movemail:: More details of fetching new mail. | ||
| 608 | |||
| 609 | Dired, the Directory Editor | ||
| 610 | |||
| 611 | * Dired Enter:: How to invoke Dired. | ||
| 612 | * Dired Commands:: Commands in the Dired buffer. | ||
| 613 | * Dired Deletion:: Deleting files with Dired. | ||
| 614 | * Flagging Many Files:: Flagging files based on their names. | ||
| 615 | * Dired Visiting:: Other file operations through Dired. | ||
| 616 | * Marks vs Flags:: Flagging for deletion vs marking. | ||
| 617 | * Operating on Files:: How to copy, rename, print, compress, etc. | ||
| 618 | either one file or several files. | ||
| 619 | * Shell Commands in Dired:: Running a shell command on the marked files. | ||
| 620 | * Transforming File Names:: Using patterns to rename multiple files. | ||
| 621 | * Comparison in Dired:: Running `diff' by way of Dired. | ||
| 622 | * Subdirectories in Dired:: Adding subdirectories to the Dired buffer. | ||
| 623 | * Subdirectory Motion:: Moving across subdirectories, and up and down. | ||
| 624 | * Hiding Subdirectories:: Making subdirectories visible or invisible. | ||
| 625 | * Dired Updating:: Discarding lines for files of no interest. | ||
| 626 | * Dired and Find:: Using `find' to choose the files for Dired. | ||
| 627 | |||
| 628 | The Calendar and the Diary | ||
| 629 | |||
| 630 | * Calendar Motion:: Moving through the calendar; selecting a date. | ||
| 631 | * Scroll Calendar:: Bringing earlier or later months onto the screen. | ||
| 632 | * Counting Days:: How many days are there between two dates? | ||
| 633 | * General Calendar:: Exiting or recomputing the calendar. | ||
| 634 | * LaTeX Calendar:: Print a calendar using LaTeX. | ||
| 635 | * Holidays:: Displaying dates of holidays. | ||
| 636 | * Sunrise/Sunset:: Displaying local times of sunrise and sunset. | ||
| 637 | * Lunar Phases:: Displaying phases of the moon. | ||
| 638 | * Other Calendars:: Converting dates to other calendar systems. | ||
| 639 | * Diary:: Displaying events from your diary. | ||
| 640 | * Appointments:: Reminders when it's time to do something. | ||
| 641 | * Daylight Savings:: How to specify when daylight savings time is active. | ||
| 642 | |||
| 643 | Movement in the Calendar | ||
| 644 | |||
| 645 | * Calendar Unit Motion:: Moving by days, weeks, months, and years. | ||
| 646 | * Move to Beginning or End:: Moving to start/end of weeks, months, and years. | ||
| 647 | * Specified Dates:: Moving to the current date or another | ||
| 648 | specific date. | ||
| 649 | |||
| 650 | Conversion To and From Other Calendars | ||
| 651 | |||
| 652 | * Calendar Systems:: The calendars Emacs understands | ||
| 653 | (aside from Gregorian). | ||
| 654 | * To Other Calendar:: Converting the selected date to various calendars. | ||
| 655 | * From Other Calendar:: Moving to a date specified in another calendar. | ||
| 656 | * Mayan Calendar:: Moving to a date specified in a Mayan calendar. | ||
| 657 | |||
| 658 | The Diary | ||
| 659 | |||
| 660 | * Diary Commands:: Viewing diary entries and associated calendar dates. | ||
| 661 | * Format of Diary File:: Entering events in your diary. | ||
| 662 | * Date Formats:: Various ways you can specify dates. | ||
| 663 | * Adding to Diary:: Commands to create diary entries. | ||
| 664 | * Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc. | ||
| 665 | |||
| 666 | @sc{Gnus} | ||
| 667 | |||
| 668 | * Buffers of Gnus:: The group, summary, and article buffers. | ||
| 669 | * Gnus Startup:: What you should know about starting Gnus. | ||
| 670 | * Summary of Gnus:: A short description of the basic Gnus commands. | ||
| 671 | |||
| 672 | Running Shell Commands from Emacs | ||
| 673 | |||
| 674 | * Single Shell:: How to run one shell command and return. | ||
| 675 | * Interactive Shell:: Permanent shell taking input via Emacs. | ||
| 676 | * Shell Mode:: Special Emacs commands used with permanent shell. | ||
| 677 | * Shell History:: Repeating previous commands in a shell buffer. | ||
| 678 | * Shell Options:: Options for customizing Shell mode. | ||
| 679 | * Remote Host:: Connecting to another computer. | ||
| 680 | |||
| 681 | Customization | ||
| 682 | |||
| 683 | * Minor Modes:: Each minor mode is one feature you can turn on | ||
| 684 | independently of any others. | ||
| 685 | * Variables:: Many Emacs commands examine Emacs variables | ||
| 686 | to decide what to do; by setting variables, | ||
| 687 | you can control their functioning. | ||
| 688 | * Keyboard Macros:: A keyboard macro records a sequence of | ||
| 689 | keystrokes to be replayed with a single command. | ||
| 690 | * Key Bindings:: The keymaps say what command each key runs. | ||
| 691 | By changing them, you can "redefine keys". | ||
| 692 | * Keyboard Translations:: | ||
| 693 | If your keyboard passes an undesired code | ||
| 694 | for a key, you can tell Emacs to | ||
| 695 | substitute another code. | ||
| 696 | * Syntax:: The syntax table controls how words and | ||
| 697 | expressions are parsed. | ||
| 698 | * Init File:: How to write common customizations in the | ||
| 699 | @file{.emacs} file. | ||
| 700 | |||
| 701 | Variables | ||
| 702 | |||
| 703 | * Examining:: Examining or setting one variable's value. | ||
| 704 | * Easy Customization:: | ||
| 705 | Convenient and easy customization of variables. | ||
| 706 | * Hooks:: Hook variables let you specify programs for parts | ||
| 707 | of Emacs to run on particular occasions. | ||
| 708 | * Locals:: Per-buffer values of variables. | ||
| 709 | * File Variables:: How files can specify variable values. | ||
| 710 | |||
| 711 | Keyboard Macros | ||
| 712 | |||
| 713 | * Basic Kbd Macro:: Defining and running keyboard macros. | ||
| 714 | * Save Kbd Macro:: Giving keyboard macros names; saving them in files. | ||
| 715 | * Kbd Macro Query:: Making keyboard macros do different things each time. | ||
| 716 | |||
| 717 | Customizing Key Bindings | ||
| 718 | |||
| 719 | * Keymaps:: Generalities. The global keymap. | ||
| 720 | * Prefix Keymaps:: Keymaps for prefix keys. | ||
| 721 | * Local Keymaps:: Major and minor modes have their own keymaps. | ||
| 722 | * Minibuffer Maps:: The minibuffer uses its own local keymaps. | ||
| 723 | * Rebinding:: How to redefine one key's meaning conveniently. | ||
| 724 | * Init Rebinding:: Rebinding keys with your init file, @file{.emacs}. | ||
| 725 | * Function Keys:: Rebinding terminal function keys. | ||
| 726 | * Named ASCII Chars:: Distinguishing @key{TAB} from @kbd{C-i}, and so on. | ||
| 727 | * Mouse Buttons:: Rebinding mouse buttons in Emacs. | ||
| 728 | * Disabling:: Disabling a command means confirmation is required | ||
| 729 | before it can be executed. This is done to protect | ||
| 730 | beginners from surprises. | ||
| 731 | |||
| 732 | The Init File, @file{~/.emacs} | ||
| 733 | |||
| 734 | * Init Syntax:: Syntax of constants in Emacs Lisp. | ||
| 735 | * Init Examples:: How to do some things with an init file. | ||
| 736 | * Terminal Init:: Each terminal type can have an init file. | ||
| 737 | * Find Init:: How Emacs finds the init file. | ||
| 738 | |||
| 739 | Dealing with Emacs Trouble | ||
| 740 | |||
| 741 | * DEL Gets Help:: What to do if @key{DEL} doesn't delete. | ||
| 742 | * Stuck Recursive:: `[...]' in mode line around the parentheses. | ||
| 743 | * Screen Garbled:: Garbage on the screen. | ||
| 744 | * Text Garbled:: Garbage in the text. | ||
| 745 | * Unasked-for Search:: Spontaneous entry to incremental search. | ||
| 746 | * Memory Full:: How to cope when you run out of memory. | ||
| 747 | * Emergency Escape:: Emergency escape--- | ||
| 748 | What to do if Emacs stops responding. | ||
| 749 | * Total Frustration:: When you are at your wits' end. | ||
| 750 | |||
| 751 | Reporting Bugs | ||
| 752 | |||
| 753 | * Criteria: Bug Criteria. Have you really found a bug? | ||
| 754 | * Understanding Bug Reporting:: How to report a bug effectively. | ||
| 755 | * Checklist:: Steps to follow for a good bug report. | ||
| 756 | * Sending Patches:: How to send a patch for GNU Emacs. | ||
| 757 | |||
| 758 | Command Line Options and Arguments | ||
| 759 | |||
| 760 | * Action Arguments:: Arguments to visit files, load libraries, | ||
| 761 | and call functions. | ||
| 762 | * Initial Options:: Arguments that take effect while starting Emacs. | ||
| 763 | * Command Example:: Examples of using command line arguments. | ||
| 764 | * Resume Arguments:: Specifying arguments when you resume a running Emacs. | ||
| 765 | * Environment:: Environment variables that Emacs uses. | ||
| 766 | |||
| 767 | * Display X:: Changing the default display and using remote login. | ||
| 768 | * Font X:: Choosing a font for text, under X. | ||
| 769 | * Colors X:: Choosing colors, under X. | ||
| 770 | * Window Size X:: Start-up window size, under X. | ||
| 771 | * Borders X:: Internal and external borders, under X. | ||
| 772 | * Title X:: Specifying the initial frame's title. | ||
| 773 | * Icons X:: Choosing what sort of icon to use, under X. | ||
| 774 | * Resources X:: Advanced use of classes and resources, under X. | ||
| 775 | * Lucid Resources:: X resources for Lucid menus. | ||
| 776 | * Motif Resources:: X resources for Motif menus. | ||
| 777 | |||
| 778 | Environment Variables | ||
| 779 | |||
| 780 | * General Variables:: Environment variables that all versions of Emacs use. | ||
| 781 | * Misc Variables:: Certain system specific variables. | ||
| 782 | |||
| 783 | MS-DOS and Windows NT/95 | ||
| 784 | |||
| 785 | * MS-DOS Input:: Keyboard and mouse usage on MS-DOS. | ||
| 786 | * MS-DOS Display:: Fonts, frames and display size on MS-DOS. | ||
| 787 | * MS-DOS File Names:: File-name conventions on MS-DOS. | ||
| 788 | * Text and Binary:: Text files on MS-DOS use CRLF to separate lines. | ||
| 789 | * MS-DOS Printing:: How to specify the printer on MS-DOS. | ||
| 790 | * MS-DOS Processes:: Running subprocesses on MS-DOS. | ||
| 791 | * Windows Processes:: Running subprocesses on Windows. | ||
| 792 | * Windows System Menu:: Controlling what the ALT key does. | ||
| 793 | @end menu | ||
| 794 | |||
| 795 | @iftex | ||
| 796 | @unnumbered Preface | ||
| 797 | |||
| 798 | This manual documents the use and simple customization of the Emacs | ||
| 799 | editor. The reader is not expected to be a programmer; simple | ||
| 800 | customizations do not require programming skill. But the user who is not | ||
| 801 | interested in customizing can ignore the scattered customization hints. | ||
| 802 | |||
| 803 | This is primarily a reference manual, but can also be used as a | ||
| 804 | primer. For complete beginners, it is a good idea to start with the | ||
| 805 | on-line, learn-by-doing tutorial, before reading the manual. To run the | ||
| 806 | tutorial, start Emacs and type @kbd{C-h t}. This way you can learn | ||
| 807 | Emacs by using Emacs on a specially designed file which describes | ||
| 808 | commands, tells you when to try them, and then explains the results you | ||
| 809 | see. | ||
| 810 | |||
| 811 | On first reading, just skim chapters 1 and 2, which describe the | ||
| 812 | notational conventions of the manual and the general appearance of the | ||
| 813 | Emacs display screen. Note which questions are answered in these | ||
| 814 | chapters, so you can refer back later. After reading chapter 4, you | ||
| 815 | should practice the commands there. The next few chapters describe | ||
| 816 | fundamental techniques and concepts that are used constantly. You need | ||
| 817 | to understand them thoroughly, experimenting with them if necessary. | ||
| 818 | |||
| 819 | Chapters 14 through 19 describe intermediate-level features that are | ||
| 820 | useful for all kinds of editing. Chapter 20 and following chapters | ||
| 821 | describe features that you may or may not want to use; read those | ||
| 822 | chapters when you need them. | ||
| 823 | |||
| 824 | Read the Trouble chapter if Emacs does not seem to be working | ||
| 825 | properly. It explains how to cope with some common problems | ||
| 826 | (@pxref{Lossage}), as well as when and how to report Emacs bugs | ||
| 827 | (@pxref{Bugs}). | ||
| 828 | |||
| 829 | To find the documentation on a particular command, look in the index. | ||
| 830 | Keys (character commands) and command names have separate indexes. There | ||
| 831 | is also a glossary, with a cross reference for each term. | ||
| 832 | |||
| 833 | This manual is available as a printed book and also as an Info file. | ||
| 834 | The Info file is for on-line perusal with the Info program, which will | ||
| 835 | be the principal way of viewing documentation on-line in the GNU system. | ||
| 836 | Both the Info file and the Info program itself are distributed along | ||
| 837 | with GNU Emacs. The Info file and the printed book contain | ||
| 838 | substantially the same text and are generated from the same source | ||
| 839 | files, which are also distributed along with GNU Emacs. | ||
| 840 | |||
| 841 | GNU Emacs is a member of the Emacs editor family. There are many Emacs | ||
| 842 | editors, all sharing common principles of organization. For information on | ||
| 843 | the underlying philosophy of Emacs and the lessons learned from its | ||
| 844 | development, write for a copy of AI memo 519a, ``Emacs, the Extensible, | ||
| 845 | Customizable Self-Documenting Display Editor,'' to Publications Department, | ||
| 846 | Artificial Intelligence Lab, 545 Tech Square, Cambridge, MA 02139, USA@. At | ||
| 847 | last report they charge $2.25 per copy. Another useful publication is LCS | ||
| 848 | TM-165, ``A Cookbook for an Emacs,'' by Craig Finseth, available from | ||
| 849 | Publications Department, Laboratory for Computer Science, 545 Tech Square, | ||
| 850 | Cambridge, MA 02139, USA@. The price today is $3. | ||
| 851 | |||
| 852 | This edition of the manual is intended for use with GNU Emacs installed | ||
| 853 | on GNU and Unix systems. GNU Emacs can also be used on VMS, MS-DOS | ||
| 854 | (also called MS-DOG), Windows NT, and Windows 95 systems. Those systems use | ||
| 855 | different file name syntax; in addition, VMS and MS-DOS do not support | ||
| 856 | all GNU Emacs features. We don't try to describe VMS usage in this | ||
| 857 | manual. @xref{MS-DOS}, for information about using Emacs on MS-DOS. | ||
| 858 | @end iftex | ||
| 859 | |||
| 860 | @node Distrib, Copying, Top, Top | ||
| 861 | @unnumbered Distribution | ||
| 862 | |||
| 863 | GNU Emacs is @dfn{free software}; this means that everyone is free to | ||
| 864 | use it and free to redistribute it on certain conditions. GNU Emacs is | ||
| 865 | not in the public domain; it is copyrighted and there are restrictions | ||
| 866 | on its distribution, but these restrictions are designed to permit | ||
| 867 | everything that a good cooperating citizen would want to do. What is | ||
| 868 | not allowed is to try to prevent others from further sharing any version | ||
| 869 | of GNU Emacs that they might get from you. The precise conditions are | ||
| 870 | found in the GNU General Public License that comes with Emacs and also | ||
| 871 | appears following this section. | ||
| 872 | |||
| 873 | One way to get a copy of GNU Emacs is from someone else who has it. You | ||
| 874 | need not ask for our permission to do so, or tell any one else; just | ||
| 875 | copy it. If you have access to the Internet, you can get the latest | ||
| 876 | distribution version of GNU Emacs by anonymous FTP; see the file | ||
| 877 | @file{etc/FTP} in the Emacs distribution for more information. | ||
| 878 | |||
| 879 | You may also receive GNU Emacs when you buy a computer. Computer | ||
| 880 | manufacturers are free to distribute copies on the same terms that apply to | ||
| 881 | everyone else. These terms require them to give you the full sources, | ||
| 882 | including whatever changes they may have made, and to permit you to | ||
| 883 | redistribute the GNU Emacs received from them under the usual terms of the | ||
| 884 | General Public License. In other words, the program must be free for you | ||
| 885 | when you get it, not just free for the manufacturer. | ||
| 886 | |||
| 887 | You can also order copies of GNU Emacs from the Free Software Foundation | ||
| 888 | on CD-ROM@. This is a convenient and reliable way to get a copy; it is | ||
| 889 | also a good way to help fund our work. (The Foundation has always | ||
| 890 | received most of its funds in this way.) An order form is included in | ||
| 891 | the file @file{etc/ORDERS} in the Emacs distribution, and on our web | ||
| 892 | site in @url{http://www.gnu.org/order/order.html}. For further | ||
| 893 | information, write to | ||
| 894 | |||
| 895 | @display | ||
| 896 | Free Software Foundation | ||
| 897 | 59 Temple Place, Suite 330 | ||
| 898 | Boston, MA 02111-1307 USA | ||
| 899 | USA | ||
| 900 | @end display | ||
| 901 | |||
| 902 | The income from distribution fees goes to support the foundation's | ||
| 903 | purpose: the development of new free software, and improvements to our | ||
| 904 | existing programs including GNU Emacs. | ||
| 905 | |||
| 906 | If you find GNU Emacs useful, please @strong{send a donation} to the | ||
| 907 | Free Software Foundation to support our work. Donations to the Free | ||
| 908 | Software Foundation are tax deductible in the US. If you use GNU Emacs | ||
| 909 | at your workplace, please suggest that the company make a donation. If | ||
| 910 | company policy is unsympathetic to the idea of donating to charity, you | ||
| 911 | might instead suggest ordering a CD-ROM from the Foundation | ||
| 912 | occasionally, or subscribing to periodic updates. | ||
| 913 | |||
| 914 | @iftex | ||
| 915 | Contributors to GNU Emacs include Per Abrahamsen, Jay K. Adams, Joe | ||
| 916 | Arceneaux, Boaz Ben-Zvi, Jim Blandy, Terrence Brannon, Frank Bresz, | ||
| 917 | Peter Breton, Kevin Broadey, Vincent Broman, David M. Brown, Bill | ||
| 918 | Carpenter, Hans Chalupsky, Bob Chassell, James Clark, Mike Clarkson, | ||
| 919 | Glynn Clements, Andrew Csillag, Doug Cutting, Michael DeCorte, Gary | ||
| 920 | Delp, Matthieu Devin, Eri Ding, Carsten Dominik, Scott Draves, Viktor | ||
| 921 | Dukhovni, John Eaton, Rolf Ebert, Stephen Eglen, Torbj@"orn Einarsson, | ||
| 922 | Tsugumoto Enami, Hans Henrik Eriksen, Michael Ernst, Ata Etemadi, | ||
| 923 | Frederick Farnback, Fred Fish, Karl Fogel, Gary Foster, Noah Friedman, | ||
| 924 | Keith Gabryelski, Kevin Gallagher, Kevin Gallo, Howard Gayle, Stephen | ||
| 925 | Gildea, David Gillespie, Bob Glickstein, Boris Goldowsky, Michelangelo | ||
| 926 | Grigni, Michael Gschwind, Henry Guillaume, Doug Gwyn, Ken'ichi Handa , | ||
| 927 | Chris Hanson, K. Shane Hartman, John Heidemann, Markus Heritsch, Karl | ||
| 928 | Heuer, Manabu Higashida, Anders Holst, Kurt Hornik, Tom Houlder, Lars | ||
| 929 | Ingebrigtsen, Andrew Innes, Michael K. Johnson, Kyle Jones, Tomoji | ||
| 930 | Kagatani, Brewster Kahle, David Kaufman, Henry Kautz, Howard Kaye, | ||
| 931 | Michael Kifer, Richard King, Larry K. Kolodney, Robert Krawitz, | ||
| 932 | Sebastian Kremer, Geoff Kuenning, David K@aa gedal, Daniel LaLiberte, | ||
| 933 | Aaron Larson, James R. Larus, Frederic Lepied, Lars Lindberg, Eric | ||
| 934 | Ludlam, Neil M. Mager, Ken Manheimer, Bill Mann, Brian Marick, Simon | ||
| 935 | Marshall, Bengt Martensson, Charlie Martin, Thomas May, Roland McGrath, | ||
| 936 | David Megginson, Wayne Mesard, Richard Mlynarik, Keith Moore, Erik | ||
| 937 | Naggum, Thomas Neumann, Mike Newton, Jurgen Nickelsen, Jeff Norden, | ||
| 938 | Andrew Norman, Jeff Peck, Damon Anton Permezel, Tom Perrine, Jens | ||
| 939 | Petersen, Daniel Pfeiffer, Fred Pierresteguy, Christian Plaunt, | ||
| 940 | Francesco A. Potorti, Michael D. Prange, Ashwin Ram, Eric S. Raymond, | ||
| 941 | Paul Reilly, Edward M. Reingold, Rob Riepel, Roland B. Roberts, John | ||
| 942 | Robinson, Danny Roozendaal, William Rosenblatt, Guillermo J. Rozas, Ivar | ||
| 943 | Rummelhoff, Wolfgang Rupprecht, James B. Salem, Masahiko Sato, William | ||
| 944 | Schelter, Ralph Schleicher, Gregor Schmid, Michael Schmidt, Ronald | ||
| 945 | S. Schnell, Philippe Schnoebelen, Stephen Schoef, Randal Schwartz, | ||
| 946 | Manuel Serrano, Stanislav Shalunov, Mark Shapiro, Richard Sharman, Olin | ||
| 947 | Shivers, Espen Skoglund, Rick Sladkey, Lynn Slater, Chris Smith, David | ||
| 948 | Smith, Paul D. Smith, William Sommerfeld, Michael Staats, Sam Steingold, | ||
| 949 | Ake Stenhoff, Peter Stephenson, Jonathan Stigelman, Steve Strassman, | ||
| 950 | Jens T. Berger Thielemann, Spencer Thomas, Jim Thompson, Masanobu Umeda, | ||
| 951 | Neil W. Van Dyke, Ulrik Vieth, Geoffrey Voelker, Johan Vromans, Barry | ||
| 952 | Warsaw, Morten Welinder, Joseph Brian Wells, Rodney Whitby, Ed | ||
| 953 | Wilkinson, Mike Williams, Steven A. Wood, Dale R. Worley, Felix | ||
| 954 | S. T. Wu, Tom Wurgler, Eli Zaretskii, Jamie Zawinski, Ian T. Zimmermann, | ||
| 955 | Reto Zimmermann, and Neal Ziring. | ||
| 956 | @end iftex | ||
| 957 | |||
| 958 | @node Copying, Intro, Distrib, Top | ||
| 959 | @unnumbered GNU GENERAL PUBLIC LICENSE | ||
| 960 | @center Version 2, June 1991 | ||
| 961 | |||
| 962 | @display | ||
| 963 | Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. | ||
| 964 | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
| 965 | |||
| 966 | Everyone is permitted to copy and distribute verbatim copies | ||
| 967 | of this license document, but changing it is not allowed. | ||
| 968 | @end display | ||
| 969 | |||
| 970 | @unnumberedsec Preamble | ||
| 971 | |||
| 972 | The licenses for most software are designed to take away your | ||
| 973 | freedom to share and change it. By contrast, the GNU General Public | ||
| 974 | License is intended to guarantee your freedom to share and change free | ||
| 975 | software---to make sure the software is free for all its users. This | ||
| 976 | General Public License applies to most of the Free Software | ||
| 977 | Foundation's software and to any other program whose authors commit to | ||
| 978 | using it. (Some other Free Software Foundation software is covered by | ||
| 979 | the GNU Library General Public License instead.) You can apply it to | ||
| 980 | your programs, too. | ||
| 981 | |||
| 982 | When we speak of free software, we are referring to freedom, not | ||
| 983 | price. Our General Public Licenses are designed to make sure that you | ||
| 984 | have the freedom to distribute copies of free software (and charge for | ||
| 985 | this service if you wish), that you receive source code or can get it | ||
| 986 | if you want it, that you can change the software or use pieces of it | ||
| 987 | in new free programs; and that you know you can do these things. | ||
| 988 | |||
| 989 | To protect your rights, we need to make restrictions that forbid | ||
| 990 | anyone to deny you these rights or to ask you to surrender the rights. | ||
| 991 | These restrictions translate to certain responsibilities for you if you | ||
| 992 | distribute copies of the software, or if you modify it. | ||
| 993 | |||
| 994 | For example, if you distribute copies of such a program, whether | ||
| 995 | gratis or for a fee, you must give the recipients all the rights that | ||
| 996 | you have. You must make sure that they, too, receive or can get the | ||
| 997 | source code. And you must show them these terms so they know their | ||
| 998 | rights. | ||
| 999 | |||
| 1000 | We protect your rights with two steps: (1) copyright the software, and | ||
| 1001 | (2) offer you this license which gives you legal permission to copy, | ||
| 1002 | distribute and/or modify the software. | ||
| 1003 | |||
| 1004 | Also, for each author's protection and ours, we want to make certain | ||
| 1005 | that everyone understands that there is no warranty for this free | ||
| 1006 | software. If the software is modified by someone else and passed on, we | ||
| 1007 | want its recipients to know that what they have is not the original, so | ||
| 1008 | that any problems introduced by others will not reflect on the original | ||
| 1009 | authors' reputations. | ||
| 1010 | |||
| 1011 | Finally, any free program is threatened constantly by software | ||
| 1012 | patents. We wish to avoid the danger that redistributors of a free | ||
| 1013 | program will individually obtain patent licenses, in effect making the | ||
| 1014 | program proprietary. To prevent this, we have made it clear that any | ||
| 1015 | patent must be licensed for everyone's free use or not licensed at all. | ||
| 1016 | |||
| 1017 | The precise terms and conditions for copying, distribution and | ||
| 1018 | modification follow. | ||
| 1019 | |||
| 1020 | @iftex | ||
| 1021 | @unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||
| 1022 | @end iftex | ||
| 1023 | @ifinfo | ||
| 1024 | @center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||
| 1025 | @end ifinfo | ||
| 1026 | |||
| 1027 | @enumerate 0 | ||
| 1028 | @item | ||
| 1029 | This License applies to any program or other work which contains | ||
| 1030 | a notice placed by the copyright holder saying it may be distributed | ||
| 1031 | under the terms of this General Public License. The ``Program'', below, | ||
| 1032 | refers to any such program or work, and a ``work based on the Program'' | ||
| 1033 | means either the Program or any derivative work under copyright law: | ||
| 1034 | that is to say, a work containing the Program or a portion of it, | ||
| 1035 | either verbatim or with modifications and/or translated into another | ||
| 1036 | language. (Hereinafter, translation is included without limitation in | ||
| 1037 | the term ``modification''.) Each licensee is addressed as ``you''. | ||
| 1038 | |||
| 1039 | Activities other than copying, distribution and modification are not | ||
| 1040 | covered by this License; they are outside its scope. The act of | ||
| 1041 | running the Program is not restricted, and the output from the Program | ||
| 1042 | is covered only if its contents constitute a work based on the | ||
| 1043 | Program (independent of having been made by running the Program). | ||
| 1044 | Whether that is true depends on what the Program does. | ||
| 1045 | |||
| 1046 | @item | ||
| 1047 | You may copy and distribute verbatim copies of the Program's | ||
| 1048 | source code as you receive it, in any medium, provided that you | ||
| 1049 | conspicuously and appropriately publish on each copy an appropriate | ||
| 1050 | copyright notice and disclaimer of warranty; keep intact all the | ||
| 1051 | notices that refer to this License and to the absence of any warranty; | ||
| 1052 | and give any other recipients of the Program a copy of this License | ||
| 1053 | along with the Program. | ||
| 1054 | |||
| 1055 | You may charge a fee for the physical act of transferring a copy, and | ||
| 1056 | you may at your option offer warranty protection in exchange for a fee. | ||
| 1057 | |||
| 1058 | @item | ||
| 1059 | You may modify your copy or copies of the Program or any portion | ||
| 1060 | of it, thus forming a work based on the Program, and copy and | ||
| 1061 | distribute such modifications or work under the terms of Section 1 | ||
| 1062 | above, provided that you also meet all of these conditions: | ||
| 1063 | |||
| 1064 | @enumerate a | ||
| 1065 | @item | ||
| 1066 | You must cause the modified files to carry prominent notices | ||
| 1067 | stating that you changed the files and the date of any change. | ||
| 1068 | |||
| 1069 | @item | ||
| 1070 | You must cause any work that you distribute or publish, that in | ||
| 1071 | whole or in part contains or is derived from the Program or any | ||
| 1072 | part thereof, to be licensed as a whole at no charge to all third | ||
| 1073 | parties under the terms of this License. | ||
| 1074 | |||
| 1075 | @item | ||
| 1076 | If the modified program normally reads commands interactively | ||
| 1077 | when run, you must cause it, when started running for such | ||
| 1078 | interactive use in the most ordinary way, to print or display an | ||
| 1079 | announcement including an appropriate copyright notice and a | ||
| 1080 | notice that there is no warranty (or else, saying that you provide | ||
| 1081 | a warranty) and that users may redistribute the program under | ||
| 1082 | these conditions, and telling the user how to view a copy of this | ||
| 1083 | License. (Exception: if the Program itself is interactive but | ||
| 1084 | does not normally print such an announcement, your work based on | ||
| 1085 | the Program is not required to print an announcement.) | ||
| 1086 | @end enumerate | ||
| 1087 | |||
| 1088 | These requirements apply to the modified work as a whole. If | ||
| 1089 | identifiable sections of that work are not derived from the Program, | ||
| 1090 | and can be reasonably considered independent and separate works in | ||
| 1091 | themselves, then this License, and its terms, do not apply to those | ||
| 1092 | sections when you distribute them as separate works. But when you | ||
| 1093 | distribute the same sections as part of a whole which is a work based | ||
| 1094 | on the Program, the distribution of the whole must be on the terms of | ||
| 1095 | this License, whose permissions for other licensees extend to the | ||
| 1096 | entire whole, and thus to each and every part regardless of who wrote it. | ||
| 1097 | |||
| 1098 | Thus, it is not the intent of this section to claim rights or contest | ||
| 1099 | your rights to work written entirely by you; rather, the intent is to | ||
| 1100 | exercise the right to control the distribution of derivative or | ||
| 1101 | collective works based on the Program. | ||
| 1102 | |||
| 1103 | In addition, mere aggregation of another work not based on the Program | ||
| 1104 | with the Program (or with a work based on the Program) on a volume of | ||
| 1105 | a storage or distribution medium does not bring the other work under | ||
| 1106 | the scope of this License. | ||
| 1107 | |||
| 1108 | @item | ||
| 1109 | You may copy and distribute the Program (or a work based on it, | ||
| 1110 | under Section 2) in object code or executable form under the terms of | ||
| 1111 | Sections 1 and 2 above provided that you also do one of the following: | ||
| 1112 | |||
| 1113 | @enumerate a | ||
| 1114 | @item | ||
| 1115 | Accompany it with the complete corresponding machine-readable | ||
| 1116 | source code, which must be distributed under the terms of Sections | ||
| 1117 | 1 and 2 above on a medium customarily used for software interchange; or, | ||
| 1118 | |||
| 1119 | @item | ||
| 1120 | Accompany it with a written offer, valid for at least three | ||
| 1121 | years, to give any third party, for a charge no more than your | ||
| 1122 | cost of physically performing source distribution, a complete | ||
| 1123 | machine-readable copy of the corresponding source code, to be | ||
| 1124 | distributed under the terms of Sections 1 and 2 above on a medium | ||
| 1125 | customarily used for software interchange; or, | ||
| 1126 | |||
| 1127 | @item | ||
| 1128 | Accompany it with the information you received as to the offer | ||
| 1129 | to distribute corresponding source code. (This alternative is | ||
| 1130 | allowed only for noncommercial distribution and only if you | ||
| 1131 | received the program in object code or executable form with such | ||
| 1132 | an offer, in accord with Subsection b above.) | ||
| 1133 | @end enumerate | ||
| 1134 | |||
| 1135 | The source code for a work means the preferred form of the work for | ||
| 1136 | making modifications to it. For an executable work, complete source | ||
| 1137 | code means all the source code for all modules it contains, plus any | ||
| 1138 | associated interface definition files, plus the scripts used to | ||
| 1139 | control compilation and installation of the executable. However, as a | ||
| 1140 | special exception, the source code distributed need not include | ||
| 1141 | anything that is normally distributed (in either source or binary | ||
| 1142 | form) with the major components (compiler, kernel, and so on) of the | ||
| 1143 | operating system on which the executable runs, unless that component | ||
| 1144 | itself accompanies the executable. | ||
| 1145 | |||
| 1146 | If distribution of executable or object code is made by offering | ||
| 1147 | access to copy from a designated place, then offering equivalent | ||
| 1148 | access to copy the source code from the same place counts as | ||
| 1149 | distribution of the source code, even though third parties are not | ||
| 1150 | compelled to copy the source along with the object code. | ||
| 1151 | |||
| 1152 | @item | ||
| 1153 | You may not copy, modify, sublicense, or distribute the Program | ||
| 1154 | except as expressly provided under this License. Any attempt | ||
| 1155 | otherwise to copy, modify, sublicense or distribute the Program is | ||
| 1156 | void, and will automatically terminate your rights under this License. | ||
| 1157 | However, parties who have received copies, or rights, from you under | ||
| 1158 | this License will not have their licenses terminated so long as such | ||
| 1159 | parties remain in full compliance. | ||
| 1160 | |||
| 1161 | @item | ||
| 1162 | You are not required to accept this License, since you have not | ||
| 1163 | signed it. However, nothing else grants you permission to modify or | ||
| 1164 | distribute the Program or its derivative works. These actions are | ||
| 1165 | prohibited by law if you do not accept this License. Therefore, by | ||
| 1166 | modifying or distributing the Program (or any work based on the | ||
| 1167 | Program), you indicate your acceptance of this License to do so, and | ||
| 1168 | all its terms and conditions for copying, distributing or modifying | ||
| 1169 | the Program or works based on it. | ||
| 1170 | |||
| 1171 | @item | ||
| 1172 | Each time you redistribute the Program (or any work based on the | ||
| 1173 | Program), the recipient automatically receives a license from the | ||
| 1174 | original licensor to copy, distribute or modify the Program subject to | ||
| 1175 | these terms and conditions. You may not impose any further | ||
| 1176 | restrictions on the recipients' exercise of the rights granted herein. | ||
| 1177 | You are not responsible for enforcing compliance by third parties to | ||
| 1178 | this License. | ||
| 1179 | |||
| 1180 | @item | ||
| 1181 | If, as a consequence of a court judgment or allegation of patent | ||
| 1182 | infringement or for any other reason (not limited to patent issues), | ||
| 1183 | conditions are imposed on you (whether by court order, agreement or | ||
| 1184 | otherwise) that contradict the conditions of this License, they do not | ||
| 1185 | excuse you from the conditions of this License. If you cannot | ||
| 1186 | distribute so as to satisfy simultaneously your obligations under this | ||
| 1187 | License and any other pertinent obligations, then as a consequence you | ||
| 1188 | may not distribute the Program at all. For example, if a patent | ||
| 1189 | license would not permit royalty-free redistribution of the Program by | ||
| 1190 | all those who receive copies directly or indirectly through you, then | ||
| 1191 | the only way you could satisfy both it and this License would be to | ||
| 1192 | refrain entirely from distribution of the Program. | ||
| 1193 | |||
| 1194 | If any portion of this section is held invalid or unenforceable under | ||
| 1195 | any particular circumstance, the balance of the section is intended to | ||
| 1196 | apply and the section as a whole is intended to apply in other | ||
| 1197 | circumstances. | ||
| 1198 | |||
| 1199 | It is not the purpose of this section to induce you to infringe any | ||
| 1200 | patents or other property right claims or to contest validity of any | ||
| 1201 | such claims; this section has the sole purpose of protecting the | ||
| 1202 | integrity of the free software distribution system, which is | ||
| 1203 | implemented by public license practices. Many people have made | ||
| 1204 | generous contributions to the wide range of software distributed | ||
| 1205 | through that system in reliance on consistent application of that | ||
| 1206 | system; it is up to the author/donor to decide if he or she is willing | ||
| 1207 | to distribute software through any other system and a licensee cannot | ||
| 1208 | impose that choice. | ||
| 1209 | |||
| 1210 | This section is intended to make thoroughly clear what is believed to | ||
| 1211 | be a consequence of the rest of this License. | ||
| 1212 | |||
| 1213 | @item | ||
| 1214 | If the distribution and/or use of the Program is restricted in | ||
| 1215 | certain countries either by patents or by copyrighted interfaces, the | ||
| 1216 | original copyright holder who places the Program under this License | ||
| 1217 | may add an explicit geographical distribution limitation excluding | ||
| 1218 | those countries, so that distribution is permitted only in or among | ||
| 1219 | countries not thus excluded. In such case, this License incorporates | ||
| 1220 | the limitation as if written in the body of this License. | ||
| 1221 | |||
| 1222 | @item | ||
| 1223 | The Free Software Foundation may publish revised and/or new versions | ||
| 1224 | of the General Public License from time to time. Such new versions will | ||
| 1225 | be similar in spirit to the present version, but may differ in detail to | ||
| 1226 | address new problems or concerns. | ||
| 1227 | |||
| 1228 | Each version is given a distinguishing version number. If the Program | ||
| 1229 | specifies a version number of this License which applies to it and ``any | ||
| 1230 | later version'', you have the option of following the terms and conditions | ||
| 1231 | either of that version or of any later version published by the Free | ||
| 1232 | Software Foundation. If the Program does not specify a version number of | ||
| 1233 | this License, you may choose any version ever published by the Free Software | ||
| 1234 | Foundation. | ||
| 1235 | |||
| 1236 | @item | ||
| 1237 | If you wish to incorporate parts of the Program into other free | ||
| 1238 | programs whose distribution conditions are different, write to the author | ||
| 1239 | to ask for permission. For software which is copyrighted by the Free | ||
| 1240 | Software Foundation, write to the Free Software Foundation; we sometimes | ||
| 1241 | make exceptions for this. Our decision will be guided by the two goals | ||
| 1242 | of preserving the free status of all derivatives of our free software and | ||
| 1243 | of promoting the sharing and reuse of software generally. | ||
| 1244 | |||
| 1245 | @iftex | ||
| 1246 | @heading NO WARRANTY | ||
| 1247 | @end iftex | ||
| 1248 | @ifinfo | ||
| 1249 | @center NO WARRANTY | ||
| 1250 | @end ifinfo | ||
| 1251 | |||
| 1252 | @item | ||
| 1253 | BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | ||
| 1254 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW@. EXCEPT WHEN | ||
| 1255 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | ||
| 1256 | PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | ||
| 1257 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
| 1258 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE@. THE ENTIRE RISK AS | ||
| 1259 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU@. SHOULD THE | ||
| 1260 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | ||
| 1261 | REPAIR OR CORRECTION. | ||
| 1262 | |||
| 1263 | @item | ||
| 1264 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||
| 1265 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | ||
| 1266 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||
| 1267 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | ||
| 1268 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | ||
| 1269 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | ||
| 1270 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||
| 1271 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||
| 1272 | POSSIBILITY OF SUCH DAMAGES. | ||
| 1273 | @end enumerate | ||
| 1274 | |||
| 1275 | @iftex | ||
| 1276 | @heading END OF TERMS AND CONDITIONS | ||
| 1277 | @end iftex | ||
| 1278 | @ifinfo | ||
| 1279 | @center END OF TERMS AND CONDITIONS | ||
| 1280 | @end ifinfo | ||
| 1281 | |||
| 1282 | @page | ||
| 1283 | @unnumberedsec How to Apply These Terms to Your New Programs | ||
| 1284 | |||
| 1285 | If you develop a new program, and you want it to be of the greatest | ||
| 1286 | possible use to the public, the best way to achieve this is to make it | ||
| 1287 | free software which everyone can redistribute and change under these terms. | ||
| 1288 | |||
| 1289 | To do so, attach the following notices to the program. It is safest | ||
| 1290 | to attach them to the start of each source file to most effectively | ||
| 1291 | convey the exclusion of warranty; and each file should have at least | ||
| 1292 | the ``copyright'' line and a pointer to where the full notice is found. | ||
| 1293 | |||
| 1294 | @smallexample | ||
| 1295 | @var{one line to give the program's name and an idea of what it does.} | ||
| 1296 | Copyright (C) 19@var{yy} @var{name of author} | ||
| 1297 | |||
| 1298 | This program is free software; you can redistribute it and/or | ||
| 1299 | modify it under the terms of the GNU General Public License | ||
| 1300 | as published by the Free Software Foundation; either version 2 | ||
| 1301 | of the License, or (at your option) any later version. | ||
| 1302 | |||
| 1303 | This program is distributed in the hope that it will be useful, | ||
| 1304 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 1305 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE@. See the | ||
| 1306 | GNU General Public License for more details. | ||
| 1307 | |||
| 1308 | You should have received a copy of the GNU General Public License along | ||
| 1309 | with this program; if not, write to the Free Software Foundation, Inc., | ||
| 1310 | 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. | ||
| 1311 | @end smallexample | ||
| 1312 | |||
| 1313 | Also add information on how to contact you by electronic and paper mail. | ||
| 1314 | |||
| 1315 | If the program is interactive, make it output a short notice like this | ||
| 1316 | when it starts in an interactive mode: | ||
| 1317 | |||
| 1318 | @smallexample | ||
| 1319 | Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author} | ||
| 1320 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details | ||
| 1321 | type `show w'. This is free software, and you are welcome | ||
| 1322 | to redistribute it under certain conditions; type `show c' | ||
| 1323 | for details. | ||
| 1324 | @end smallexample | ||
| 1325 | |||
| 1326 | The hypothetical commands @samp{show w} and @samp{show c} should show | ||
| 1327 | the appropriate parts of the General Public License. Of course, the | ||
| 1328 | commands you use may be called something other than @samp{show w} and | ||
| 1329 | @samp{show c}; they could even be mouse-clicks or menu items---whatever | ||
| 1330 | suits your program. | ||
| 1331 | |||
| 1332 | You should also get your employer (if you work as a programmer) or your | ||
| 1333 | school, if any, to sign a ``copyright disclaimer'' for the program, if | ||
| 1334 | necessary. Here is a sample; alter the names: | ||
| 1335 | |||
| 1336 | @smallexample | ||
| 1337 | @group | ||
| 1338 | Yoyodyne, Inc., hereby disclaims all copyright | ||
| 1339 | interest in the program `Gnomovision' | ||
| 1340 | (which makes passes at compilers) written | ||
| 1341 | by James Hacker. | ||
| 1342 | |||
| 1343 | @var{signature of Ty Coon}, 1 April 1989 | ||
| 1344 | Ty Coon, President of Vice | ||
| 1345 | @end group | ||
| 1346 | @end smallexample | ||
| 1347 | |||
| 1348 | This General Public License does not permit incorporating your program into | ||
| 1349 | proprietary programs. If your program is a subroutine library, you may | ||
| 1350 | consider it more useful to permit linking proprietary applications with the | ||
| 1351 | library. If this is what you want to do, use the GNU Library General | ||
| 1352 | Public License instead of this License. | ||
| 1353 | |||
| 1354 | @node Intro, Glossary, Copying, Top | ||
| 1355 | @unnumbered Introduction | ||
| 1356 | |||
| 1357 | You are reading about GNU Emacs, the GNU incarnation of the advanced, | ||
| 1358 | self-documenting, customizable, extensible real-time display editor Emacs. | ||
| 1359 | (The `G' in `GNU' is not silent.) | ||
| 1360 | |||
| 1361 | We say that Emacs is a @dfn{display} editor because normally the text | ||
| 1362 | being edited is visible on the screen and is updated automatically as you | ||
| 1363 | type your commands. @xref{Screen,Display}. | ||
| 1364 | |||
| 1365 | We call it a @dfn{real-time} editor because the display is updated very | ||
| 1366 | frequently, usually after each character or pair of characters you | ||
| 1367 | type. This minimizes the amount of information you must keep in your | ||
| 1368 | head as you edit. @xref{Basic,Real-time,Basic Editing}. | ||
| 1369 | |||
| 1370 | We call Emacs advanced because it provides facilities that go beyond | ||
| 1371 | simple insertion and deletion: controlling subprocesses; automatic | ||
| 1372 | indentation of programs; viewing two or more files at once; editing | ||
| 1373 | formatted text; and dealing in terms of characters, words, lines, | ||
| 1374 | sentences, paragraphs, and pages, as well as expressions and comments in | ||
| 1375 | several different programming languages. | ||
| 1376 | |||
| 1377 | @dfn{Self-documenting} means that at any time you can type a special | ||
| 1378 | character, @kbd{Control-h}, to find out what your options are. You can | ||
| 1379 | also use it to find out what any command does, or to find all the commands | ||
| 1380 | that pertain to a topic. @xref{Help}. | ||
| 1381 | |||
| 1382 | @dfn{Customizable} means that you can change the definitions of Emacs | ||
| 1383 | commands in little ways. For example, if you use a programming language in | ||
| 1384 | which comments start with @samp{<**} and end with @samp{**>}, you can tell | ||
| 1385 | the Emacs comment manipulation commands to use those strings | ||
| 1386 | (@pxref{Comments}). Another sort of customization is rearrangement of the | ||
| 1387 | command set. For example, if you prefer the four basic cursor motion | ||
| 1388 | commands (up, down, left and right) on keys in a diamond pattern on the | ||
| 1389 | keyboard, you can rebind the keys that way. @xref{Customization}. | ||
| 1390 | |||
| 1391 | @dfn{Extensible} means that you can go beyond simple customization and | ||
| 1392 | write entirely new commands, programs in the Lisp language to be run by | ||
| 1393 | Emacs's own Lisp interpreter. Emacs is an ``on-line extensible'' | ||
| 1394 | system, which means that it is divided into many functions that call | ||
| 1395 | each other, any of which can be redefined in the middle of an editing | ||
| 1396 | session. Almost any part of Emacs can be replaced without making a | ||
| 1397 | separate copy of all of Emacs. Most of the editing commands of Emacs | ||
| 1398 | are written in Lisp already; the few exceptions could have been written | ||
| 1399 | in Lisp but are written in C for efficiency. Although only a programmer | ||
| 1400 | can write an extension, anybody can use it afterward. If you want to | ||
| 1401 | learn Emacs Lisp programming, we recommend the @cite{Introduction to | ||
| 1402 | Emacs Lisp} by Robert J. Chassell, also published by the Free Software | ||
| 1403 | Foundation. | ||
| 1404 | |||
| 1405 | When run under the X Window System, Emacs provides its own menus and | ||
| 1406 | convenient bindings to mouse buttons. But Emacs can provide many of the | ||
| 1407 | benefits of a window system on a text-only terminal. For instance, you | ||
| 1408 | can look at or edit several files at once, move text between files, and | ||
| 1409 | edit files while running shell commands. | ||
| 1410 | |||
| 1411 | @include screen.texi | ||
| 1412 | @include commands.texi | ||
| 1413 | @include entering.texi | ||
| 1414 | @include basic.texi | ||
| 1415 | @include mini.texi | ||
| 1416 | @include m-x.texi | ||
| 1417 | @include help.texi | ||
| 1418 | @include mark.texi | ||
| 1419 | @include killing.texi | ||
| 1420 | @include regs.texi | ||
| 1421 | @include display.texi | ||
| 1422 | @include search.texi | ||
| 1423 | @include fixit.texi | ||
| 1424 | @include files.texi | ||
| 1425 | @include buffers.texi | ||
| 1426 | @include windows.texi | ||
| 1427 | @include frames.texi | ||
| 1428 | @include mule.texi | ||
| 1429 | @include major.texi | ||
| 1430 | @include indent.texi | ||
| 1431 | @include text.texi | ||
| 1432 | @include programs.texi | ||
| 1433 | @include building.texi | ||
| 1434 | @include abbrevs.texi | ||
| 1435 | @include picture.texi | ||
| 1436 | @include sending.texi | ||
| 1437 | @include rmail.texi | ||
| 1438 | @include dired.texi | ||
| 1439 | @include calendar.texi | ||
| 1440 | @include misc.texi | ||
| 1441 | @include custom.texi | ||
| 1442 | @include trouble.texi | ||
| 1443 | @include cmdargs.texi | ||
| 1444 | |||
| 1445 | @include anti.texi | ||
| 1446 | @include msdog.texi | ||
| 1447 | @include gnu.texi | ||
| 1448 | @include glossary.texi | ||
| 1449 | @ifinfo | ||
| 1450 | @include ack.texi | ||
| 1451 | @end ifinfo | ||
| 1452 | |||
| 1453 | @node Key Index, Command Index, Glossary, Top | ||
| 1454 | @unnumbered Key (Character) Index | ||
| 1455 | @printindex ky | ||
| 1456 | |||
| 1457 | @node Command Index, Variable Index, Key Index, Top | ||
| 1458 | @unnumbered Command and Function Index | ||
| 1459 | @printindex fn | ||
| 1460 | |||
| 1461 | @node Variable Index, Concept Index, Command Index, Top | ||
| 1462 | @unnumbered Variable Index | ||
| 1463 | @printindex vr | ||
| 1464 | |||
| 1465 | @node Concept Index, Acknowledgments, Variable Index, Top | ||
| 1466 | @unnumbered Concept Index | ||
| 1467 | @printindex cp | ||
| 1468 | |||
| 1469 | @summarycontents | ||
| 1470 | @contents | ||
| 1471 | @bye | ||
| 1472 | |||