comparison doc/lispref/vol1.texi @ 109302:60516122d066

Merge changes from emacs-23 branch.
author Chong Yidong <cyd@stupidchicken.com>
date Sat, 10 Jul 2010 14:52:53 -0400
parents b4d27afff1bf 71353caf35e3
children a44dc3503539
comparison
equal deleted inserted replaced
109190:8afa85da3f2d 109302:60516122d066
162 * Files:: Accessing files. 162 * Files:: Accessing files.
163 * Backups and Auto-Saving:: Controlling how backups and auto-save 163 * Backups and Auto-Saving:: Controlling how backups and auto-save
164 files are made. 164 files are made.
165 * Buffers:: Creating and using buffer objects. 165 * Buffers:: Creating and using buffer objects.
166 * Windows:: Manipulating windows and displaying buffers. 166 * Windows:: Manipulating windows and displaying buffers.
167 * Frames:: Making multiple system-level windows. 167 * Frames:: Making multiple system-level windows.
168 * Positions:: Buffer positions and motion functions. 168 * Positions:: Buffer positions and motion functions.
169 * Markers:: Markers represent positions and update 169 * Markers:: Markers represent positions and update
170 automatically when the text is changed. 170 automatically when the text is changed.
171 171
172 * Text:: Examining and changing text in buffers. 172 * Text:: Examining and changing text in buffers.
174 * Searching and Matching:: Searching buffers for strings or regexps. 174 * Searching and Matching:: Searching buffers for strings or regexps.
175 * Syntax Tables:: The syntax table controls word and list parsing. 175 * Syntax Tables:: The syntax table controls word and list parsing.
176 * Abbrevs:: How Abbrev mode works, and its data structures. 176 * Abbrevs:: How Abbrev mode works, and its data structures.
177 177
178 * Processes:: Running and communicating with subprocesses. 178 * Processes:: Running and communicating with subprocesses.
179 * Display:: Features for controlling the screen display. 179 * Display:: Features for controlling the screen display.
180 * System Interface:: Getting the user id, system type, environment 180 * System Interface:: Getting the user id, system type, environment
181 variables, and other such things. 181 variables, and other such things.
182 182
183 Appendices 183 Appendices
184 184
309 * Font Type:: Fonts for displaying text. 309 * Font Type:: Fonts for displaying text.
310 310
311 Numbers 311 Numbers
312 312
313 * Integer Basics:: Representation and range of integers. 313 * Integer Basics:: Representation and range of integers.
314 * Float Basics:: Representation and range of floating point. 314 * Float Basics:: Representation and range of floating point.
315 * Predicates on Numbers:: Testing for numbers. 315 * Predicates on Numbers:: Testing for numbers.
316 * Comparison of Numbers:: Equality and inequality predicates. 316 * Comparison of Numbers:: Equality and inequality predicates.
317 * Numeric Conversions:: Converting float to integer and vice versa. 317 * Numeric Conversions:: Converting float to integer and vice versa.
318 * Arithmetic Operations:: How to add, subtract, multiply and divide. 318 * Arithmetic Operations:: How to add, subtract, multiply and divide.
319 * Rounding Operations:: Explicitly rounding floating point numbers. 319 * Rounding Operations:: Explicitly rounding floating point numbers.
320 * Bitwise Operations:: Logical and, or, not, shifting. 320 * Bitwise Operations:: Logical and, or, not, shifting.
321 * Math Functions:: Trig, exponential and logarithmic functions. 321 * Math Functions:: Trig, exponential and logarithmic functions.
322 * Random Numbers:: Obtaining random integers, predictable or not. 322 * Random Numbers:: Obtaining random integers, predictable or not.
329 * Modifying Strings:: Altering the contents of an existing string. 329 * Modifying Strings:: Altering the contents of an existing string.
330 * Text Comparison:: Comparing characters or strings. 330 * Text Comparison:: Comparing characters or strings.
331 * String Conversion:: Converting to and from characters and strings. 331 * String Conversion:: Converting to and from characters and strings.
332 * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. 332 * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}.
333 * Case Conversion:: Case conversion functions. 333 * Case Conversion:: Case conversion functions.
334 * Case Tables:: Customizing case conversion. 334 * Case Tables:: Customizing case conversion.
335 335
336 Lists 336 Lists
337 337
338 * Cons Cells:: How lists are made out of cons cells. 338 * Cons Cells:: How lists are made out of cons cells.
339 * List-related Predicates:: Is this object a list? Comparing two lists. 339 * List-related Predicates:: Is this object a list? Comparing two lists.
397 397
398 * Self-Evaluating Forms:: Forms that evaluate to themselves. 398 * Self-Evaluating Forms:: Forms that evaluate to themselves.
399 * Symbol Forms:: Symbols evaluate as variables. 399 * Symbol Forms:: Symbols evaluate as variables.
400 * Classifying Lists:: How to distinguish various sorts of list forms. 400 * Classifying Lists:: How to distinguish various sorts of list forms.
401 * Function Indirection:: When a symbol appears as the car of a list, 401 * Function Indirection:: When a symbol appears as the car of a list,
402 we find the real function via the symbol. 402 we find the real function via the symbol.
403 * Function Forms:: Forms that call functions. 403 * Function Forms:: Forms that call functions.
404 * Macro Forms:: Forms that call macros. 404 * Macro Forms:: Forms that call macros.
405 * Special Forms:: "Special forms" are idiosyncratic primitives, 405 * Special Forms:: "Special forms" are idiosyncratic primitives,
406 most of them extremely important. 406 most of them extremely important.
407 * Autoloading:: Functions set up to load files 407 * Autoloading:: Functions set up to load files
478 * Mapping Functions:: Applying a function to each element of a list, etc. 478 * Mapping Functions:: Applying a function to each element of a list, etc.
479 * Anonymous Functions:: Lambda expressions are functions with no names. 479 * Anonymous Functions:: Lambda expressions are functions with no names.
480 * Function Cells:: Accessing or setting the function definition 480 * Function Cells:: Accessing or setting the function definition
481 of a symbol. 481 of a symbol.
482 * Obsolete Functions:: Declaring functions obsolete. 482 * Obsolete Functions:: Declaring functions obsolete.
483 * Inline Functions:: Defining functions that the compiler 483 * Inline Functions:: Defining functions that the compiler
484 will open code. 484 will open code.
485 * Declaring Functions:: Telling the compiler that a function is defined. 485 * Declaring Functions:: Telling the compiler that a function is defined.
486 * Function Safety:: Determining whether a function is safe to call. 486 * Function Safety:: Determining whether a function is safe to call.
487 * Related Topics:: Cross-references to specific Lisp primitives 487 * Related Topics:: Cross-references to specific Lisp primitives
488 that have a special bearing on how 488 that have a special bearing on how
489 functions work. 489 functions work.
490 490
540 * Loading Non-ASCII:: Non-@acronym{ASCII} characters in Emacs Lisp files. 540 * Loading Non-ASCII:: Non-@acronym{ASCII} characters in Emacs Lisp files.
541 * Autoload:: Setting up a function to autoload. 541 * Autoload:: Setting up a function to autoload.
542 * Repeated Loading:: Precautions about loading a file twice. 542 * Repeated Loading:: Precautions about loading a file twice.
543 * Named Features:: Loading a library if it isn't already loaded. 543 * Named Features:: Loading a library if it isn't already loaded.
544 * Where Defined:: Finding which file defined a certain symbol. 544 * Where Defined:: Finding which file defined a certain symbol.
545 * Unloading:: How to "unload" a library that was loaded. 545 * Unloading:: How to "unload" a library that was loaded.
546 * Hooks for Loading:: Providing code to be run when 546 * Hooks for Loading:: Providing code to be run when
547 particular libraries are loaded. 547 particular libraries are loaded.
548 548
549 Byte Compilation 549 Byte Compilation
550 550
551 * Speed of Byte-Code:: An example of speedup from byte compilation. 551 * Speed of Byte-Code:: An example of speedup from byte compilation.
552 * Compilation Functions:: Byte compilation functions. 552 * Compilation Functions:: Byte compilation functions.
553 * Docs and Compilation:: Dynamic loading of documentation strings. 553 * Docs and Compilation:: Dynamic loading of documentation strings.
554 * Dynamic Loading:: Dynamic loading of individual functions. 554 * Dynamic Loading:: Dynamic loading of individual functions.
555 * Eval During Compile:: Code to be evaluated when you compile. 555 * Eval During Compile:: Code to be evaluated when you compile.
556 * Compiler Errors:: Handling compiler error messages. 556 * Compiler Errors:: Handling compiler error messages.
557 * Byte-Code Objects:: The data type used for byte-compiled functions. 557 * Byte-Code Objects:: The data type used for byte-compiled functions.
558 * Disassembly:: Disassembling byte-code; how to read byte-code. 558 * Disassembly:: Disassembling byte-code; how to read byte-code.
559 559
560 Advising Emacs Lisp Functions 560 Advising Emacs Lisp Functions
561 561
562 * Simple Advice:: A simple example to explain the basics of advice. 562 * Simple Advice:: A simple example to explain the basics of advice.
581 byte compilation. 581 byte compilation.
582 582
583 The Lisp Debugger 583 The Lisp Debugger
584 584
585 * Error Debugging:: Entering the debugger when an error happens. 585 * Error Debugging:: Entering the debugger when an error happens.
586 * Infinite Loops:: Stopping and debugging a program that doesn't exit. 586 * Infinite Loops:: Stopping and debugging a program that doesn't exit.
587 * Function Debugging:: Entering it when a certain function is called. 587 * Function Debugging:: Entering it when a certain function is called.
588 * Explicit Debug:: Entering it at a certain point in the program. 588 * Explicit Debug:: Entering it at a certain point in the program.
589 * Using Debugger:: What the debugger does; what you see while in it. 589 * Using Debugger:: What the debugger does; what you see while in it.
590 * Debugger Commands:: Commands used while in the debugger. 590 * Debugger Commands:: Commands used while in the debugger.
591 * Invoking the Debugger:: How to call the function @code{debug}. 591 * Invoking the Debugger:: How to call the function @code{debug}.
592 * Internals of Debugger:: Subroutines of the debugger, and global variables. 592 * Internals of Debugger:: Subroutines of the debugger, and global variables.
593 593
594 Edebug 594 Edebug
595 595
596 * Using Edebug:: Introduction to use of Edebug. 596 * Using Edebug:: Introduction to use of Edebug.
597 * Instrumenting:: You must instrument your code 597 * Instrumenting:: You must instrument your code
598 in order to debug it with Edebug. 598 in order to debug it with Edebug.
599 * Edebug Execution Modes:: Execution modes, stopping more or less often. 599 * Edebug Execution Modes:: Execution modes, stopping more or less often.
600 * Jumping:: Commands to jump to a specified place. 600 * Jumping:: Commands to jump to a specified place.
601 * Edebug Misc:: Miscellaneous commands. 601 * Edebug Misc:: Miscellaneous commands.
602 * Breaks:: Setting breakpoints to make the program stop. 602 * Breaks:: Setting breakpoints to make the program stop.
603 * Trapping Errors:: Trapping errors with Edebug. 603 * Trapping Errors:: Trapping errors with Edebug.
604 * Edebug Views:: Views inside and outside of Edebug. 604 * Edebug Views:: Views inside and outside of Edebug.
605 * Edebug Eval:: Evaluating expressions within Edebug. 605 * Edebug Eval:: Evaluating expressions within Edebug.
606 * Eval List:: Expressions whose values are displayed 606 * Eval List:: Expressions whose values are displayed
607 each time you enter Edebug. 607 each time you enter Edebug.
608 * Printing in Edebug:: Customization of printing. 608 * Printing in Edebug:: Customization of printing.
609 * Trace Buffer:: How to produce trace output in a buffer. 609 * Trace Buffer:: How to produce trace output in a buffer.
610 * Coverage Testing:: How to test evaluation coverage. 610 * Coverage Testing:: How to test evaluation coverage.
611 * The Outside Context:: Data that Edebug saves and restores. 611 * The Outside Context:: Data that Edebug saves and restores.
612 * Edebug and Macros:: Specifying how to handle macro calls. 612 * Edebug and Macros:: Specifying how to handle macro calls.
613 * Edebug Options:: Option variables for customizing Edebug. 613 * Edebug Options:: Option variables for customizing Edebug.
614 614
615 Breaks 615 Breaks
616 616
617 * Breakpoints:: Breakpoints at stop points. 617 * Breakpoints:: Breakpoints at stop points.
618 * Global Break Condition:: Breaking on an event. 618 * Global Break Condition:: Breaking on an event.
625 * Edebug Recursive Edit:: When Edebug stops execution. 625 * Edebug Recursive Edit:: When Edebug stops execution.
626 626
627 Edebug and Macros 627 Edebug and Macros
628 628
629 * Instrumenting Macro Calls::The basic problem. 629 * Instrumenting Macro Calls::The basic problem.
630 * Specification List:: How to specify complex patterns of evaluation. 630 * Specification List:: How to specify complex patterns of evaluation.
631 * Backtracking:: What Edebug does when matching fails. 631 * Backtracking:: What Edebug does when matching fails.
632 * Specification Examples:: To help understand specifications. 632 * Specification Examples:: To help understand specifications.
633 633
634 Debugging Invalid Lisp Syntax 634 Debugging Invalid Lisp Syntax
635 635
636 * Excess Open:: How to find a spurious open paren or missing close. 636 * Excess Open:: How to find a spurious open paren or missing close.
651 Minibuffers 651 Minibuffers
652 652
653 * Intro to Minibuffers:: Basic information about minibuffers. 653 * Intro to Minibuffers:: Basic information about minibuffers.
654 * Text from Minibuffer:: How to read a straight text string. 654 * Text from Minibuffer:: How to read a straight text string.
655 * Object from Minibuffer:: How to read a Lisp object or expression. 655 * Object from Minibuffer:: How to read a Lisp object or expression.
656 * Minibuffer History:: Recording previous minibuffer inputs 656 * Minibuffer History:: Recording previous minibuffer inputs
657 so the user can reuse them. 657 so the user can reuse them.
658 * Initial Input:: Specifying initial contents for the minibuffer. 658 * Initial Input:: Specifying initial contents for the minibuffer.
659 * Completion:: How to invoke and customize completion. 659 * Completion:: How to invoke and customize completion.
660 * Yes-or-No Queries:: Asking a question with a simple answer. 660 * Yes-or-No Queries:: Asking a question with a simple answer.
661 * Multiple Queries:: Asking a series of similar questions. 661 * Multiple Queries:: Asking a series of similar questions.
662 * Reading a Password:: Reading a password from the terminal. 662 * Reading a Password:: Reading a password from the terminal.
663 * Minibuffer Commands:: Commands used as key bindings in minibuffers. 663 * Minibuffer Commands:: Commands used as key bindings in minibuffers.
664 * Minibuffer Contents:: How such commands access the minibuffer text. 664 * Minibuffer Contents:: How such commands access the minibuffer text.
665 * Minibuffer Windows:: Operating on the special minibuffer windows. 665 * Minibuffer Windows:: Operating on the special minibuffer windows.
666 * Recursive Mini:: Whether recursive entry to minibuffer is allowed. 666 * Recursive Mini:: Whether recursive entry to minibuffer is allowed.
667 * Minibuffer Misc:: Various customization hooks and variables. 667 * Minibuffer Misc:: Various customization hooks and variables.
685 * Defining Commands:: Specifying how a function should read arguments. 685 * Defining Commands:: Specifying how a function should read arguments.
686 * Interactive Call:: Calling a command, so that it will read arguments. 686 * Interactive Call:: Calling a command, so that it will read arguments.
687 * Distinguish Interactive:: Making a command distinguish interactive calls. 687 * Distinguish Interactive:: Making a command distinguish interactive calls.
688 * Command Loop Info:: Variables set by the command loop for you to examine. 688 * Command Loop Info:: Variables set by the command loop for you to examine.
689 * Adjusting Point:: Adjustment of point after a command. 689 * Adjusting Point:: Adjustment of point after a command.
690 * Input Events:: What input looks like when you read it. 690 * Input Events:: What input looks like when you read it.
691 * Reading Input:: How to read input events from the keyboard or mouse. 691 * Reading Input:: How to read input events from the keyboard or mouse.
692 * Special Events:: Events processed immediately and individually. 692 * Special Events:: Events processed immediately and individually.
693 * Waiting:: Waiting for user input or elapsed time. 693 * Waiting:: Waiting for user input or elapsed time.
694 * Quitting:: How @kbd{C-g} works. How to catch or defer quitting. 694 * Quitting:: How @kbd{C-g} works. How to catch or defer quitting.
695 * Prefix Command Arguments:: How the commands to set prefix args work. 695 * Prefix Command Arguments:: How the commands to set prefix args work.
719 * Focus Events:: Moving the mouse between frames. 719 * Focus Events:: Moving the mouse between frames.
720 * Misc Events:: Other events the system can generate. 720 * Misc Events:: Other events the system can generate.
721 * Event Examples:: Examples of the lists for mouse events. 721 * Event Examples:: Examples of the lists for mouse events.
722 * Classifying Events:: Finding the modifier keys in an event symbol. 722 * Classifying Events:: Finding the modifier keys in an event symbol.
723 Event types. 723 Event types.
724 * Accessing Mouse:: Functions to extract info from mouse events. 724 * Accessing Mouse:: Functions to extract info from mouse events.
725 * Accessing Scroll:: Functions to get info from scroll bar events. 725 * Accessing Scroll:: Functions to get info from scroll bar events.
726 * Strings of Events:: Special considerations for putting 726 * Strings of Events:: Special considerations for putting
727 keyboard character events in a string. 727 keyboard character events in a string.
728 728
729 Reading Input 729 Reading Input
869 simultaneous editing by two people. 869 simultaneous editing by two people.
870 * Information about Files:: Testing existence, accessibility, size of files. 870 * Information about Files:: Testing existence, accessibility, size of files.
871 * Changing Files:: Renaming files, changing protection, etc. 871 * Changing Files:: Renaming files, changing protection, etc.
872 * File Names:: Decomposing and expanding file names. 872 * File Names:: Decomposing and expanding file names.
873 * Contents of Directories:: Getting a list of the files in a directory. 873 * Contents of Directories:: Getting a list of the files in a directory.
874 * Create/Delete Dirs:: Creating and Deleting Directories. 874 * Create/Delete Dirs:: Creating and Deleting Directories.
875 * Magic File Names:: Defining "magic" special handling 875 * Magic File Names:: Defining "magic" special handling
876 for certain file names. 876 for certain file names.
877 * Format Conversion:: Conversion to and from various file formats. 877 * Format Conversion:: Conversion to and from various file formats.
878 878
879 Visiting Files 879 Visiting Files
880 880
881 * Visiting Functions:: The usual interface functions for visiting. 881 * Visiting Functions:: The usual interface functions for visiting.
883 883
884 Information about Files 884 Information about Files
885 885
886 * Testing Accessibility:: Is a given file readable? Writable? 886 * Testing Accessibility:: Is a given file readable? Writable?
887 * Kinds of Files:: Is it a directory? A symbolic link? 887 * Kinds of Files:: Is it a directory? A symbolic link?
888 * Truenames:: Eliminating symbolic links from a file name. 888 * Truenames:: Eliminating symbolic links from a file name.
889 * File Attributes:: How large is it? Any other names? Etc. 889 * File Attributes:: How large is it? Any other names? Etc.
890 * Locating Files:: How to find a file in standard places. 890 * Locating Files:: How to find a file in standard places.
891 891
892 File Names 892 File Names
893 893
953 * Selecting Windows:: The selected window is the one that you edit in. 953 * Selecting Windows:: The selected window is the one that you edit in.
954 * Cyclic Window Ordering:: Moving around the existing windows. 954 * Cyclic Window Ordering:: Moving around the existing windows.
955 * Buffers and Windows:: Each window displays the contents of a buffer. 955 * Buffers and Windows:: Each window displays the contents of a buffer.
956 * Displaying Buffers:: Higher-level functions for displaying a buffer 956 * Displaying Buffers:: Higher-level functions for displaying a buffer
957 and choosing a window for it. 957 and choosing a window for it.
958 * Choosing Window:: How to choose a window for displaying a buffer. 958 * Choosing Window:: How to choose a window for displaying a buffer.
959 * Dedicated Windows:: How to avoid displaying another buffer in 959 * Dedicated Windows:: How to avoid displaying another buffer in
960 a specific window. 960 a specific window.
961 * Window Point:: Each window has its own location of point. 961 * Window Point:: Each window has its own location of point.
962 * Window Start and End:: Buffer positions indicating which text is 962 * Window Start and End:: Buffer positions indicating which text is
963 on-screen in a window. 963 on-screen in a window.
964 * Textual Scrolling:: Moving text up and down through the window. 964 * Textual Scrolling:: Moving text up and down through the window.
974 redisplay going past a certain point, 974 redisplay going past a certain point,
975 or window configuration changes. 975 or window configuration changes.
976 976
977 Frames 977 Frames
978 978
979 * Creating Frames:: Creating additional frames. 979 * Creating Frames:: Creating additional frames.
980 * Multiple Terminals:: Displaying on several different devices. 980 * Multiple Terminals:: Displaying on several different devices.
981 * Frame Parameters:: Controlling frame size, position, font, etc. 981 * Frame Parameters:: Controlling frame size, position, font, etc.
982 * Terminal Parameters:: Parameters common for all frames on terminal. 982 * Terminal Parameters:: Parameters common for all frames on terminal.
983 * Frame Titles:: Automatic updating of frame titles. 983 * Frame Titles:: Automatic updating of frame titles.
984 * Deleting Frames:: Frames last until explicitly deleted. 984 * Deleting Frames:: Frames last until explicitly deleted.
985 * Finding All Frames:: How to examine all existing frames. 985 * Finding All Frames:: How to examine all existing frames.
986 * Frames and Windows:: A frame contains windows; 986 * Frames and Windows:: A frame contains windows;
987 display of text always works through windows. 987 display of text always works through windows.
988 * Minibuffers and Frames:: How a frame finds the minibuffer to use. 988 * Minibuffers and Frames:: How a frame finds the minibuffer to use.
989 * Input Focus:: Specifying the selected frame. 989 * Input Focus:: Specifying the selected frame.
990 * Visibility of Frames:: Frames may be visible or invisible, or icons. 990 * Visibility of Frames:: Frames may be visible or invisible, or icons.
991 * Raising and Lowering:: Raising a frame makes it hide other windows; 991 * Raising and Lowering:: Raising a frame makes it hide other windows;
992 lowering it makes the others hide it. 992 lowering it makes the others hide it.
993 * Frame Configurations:: Saving the state of all frames. 993 * Frame Configurations:: Saving the state of all frames.
994 * Mouse Tracking:: Getting events that say when the mouse moves. 994 * Mouse Tracking:: Getting events that say when the mouse moves.
995 * Mouse Position:: Asking where the mouse is, or moving it. 995 * Mouse Position:: Asking where the mouse is, or moving it.
996 * Pop-Up Menus:: Displaying a menu for the user to select from. 996 * Pop-Up Menus:: Displaying a menu for the user to select from.
997 * Dialog Boxes:: Displaying a box to ask yes or no. 997 * Dialog Boxes:: Displaying a box to ask yes or no.
998 * Pointer Shape:: Specifying the shape of the mouse pointer. 998 * Pointer Shape:: Specifying the shape of the mouse pointer.
999 * Window System Selections::Transferring text to and from other X clients. 999 * Window System Selections::Transferring text to and from other X clients.
1000 * Drag and Drop:: Internals of Drag-and-Drop implementation. 1000 * Drag and Drop:: Internals of Drag-and-Drop implementation.
1001 * Color Names:: Getting the definitions of color names. 1001 * Color Names:: Getting the definitions of color names.
1002 * Text Terminal Colors:: Defining colors for text-only terminals. 1002 * Text Terminal Colors:: Defining colors for text-only terminals.
1003 * Resources:: Getting resource values from the server. 1003 * Resources:: Getting resource values from the server.
1004 * Display Feature Testing:: Determining the features of a terminal. 1004 * Display Feature Testing:: Determining the features of a terminal.
1005 1005
1006 Frame Parameters 1006 Frame Parameters
1007 1007
1008 * Parameter Access:: How to change a frame's parameters. 1008 * Parameter Access:: How to change a frame's parameters.
1009 * Initial Parameters:: Specifying frame parameters when you make a frame. 1009 * Initial Parameters:: Specifying frame parameters when you make a frame.
1010 * Window Frame Parameters:: List of frame parameters for window systems. 1010 * Window Frame Parameters:: List of frame parameters for window systems.
1011 * Size and Position:: Changing the size and position of a frame. 1011 * Size and Position:: Changing the size and position of a frame.
1012 * Geometry:: Parsing geometry specifications. 1012 * Geometry:: Parsing geometry specifications.
1013 1013
1014 Window Frame Parameters 1014 Window Frame Parameters
1063 * User-Level Deletion:: User-level commands to delete text. 1063 * User-Level Deletion:: User-level commands to delete text.
1064 * The Kill Ring:: Where removed text sometimes is saved for 1064 * The Kill Ring:: Where removed text sometimes is saved for
1065 later use. 1065 later use.
1066 * Undo:: Undoing changes to the text of a buffer. 1066 * Undo:: Undoing changes to the text of a buffer.
1067 * Maintaining Undo:: How to enable and disable undo information. 1067 * Maintaining Undo:: How to enable and disable undo information.
1068 How to control how much information is kept. 1068 How to control how much information is kept.
1069 * Filling:: Functions for explicit filling. 1069 * Filling:: Functions for explicit filling.
1070 * Margins:: How to specify margins for filling commands. 1070 * Margins:: How to specify margins for filling commands.
1071 * Adaptive Fill:: Adaptive Fill mode chooses a fill prefix 1071 * Adaptive Fill:: Adaptive Fill mode chooses a fill prefix
1072 from context. 1072 from context.
1073 * Auto Filling:: How auto-fill mode is implemented to break lines. 1073 * Auto Filling:: How auto-fill mode is implemented to break lines.
1089 1089
1090 * Kill Ring Concepts:: What text looks like in the kill ring. 1090 * Kill Ring Concepts:: What text looks like in the kill ring.
1091 * Kill Functions:: Functions that kill text. 1091 * Kill Functions:: Functions that kill text.
1092 * Yanking:: How yanking is done. 1092 * Yanking:: How yanking is done.
1093 * Yank Commands:: Commands that access the kill ring. 1093 * Yank Commands:: Commands that access the kill ring.
1094 * Low-Level Kill Ring:: Functions and variables for kill ring access. 1094 * Low-Level Kill Ring:: Functions and variables for kill ring access.
1095 * Internals of Kill Ring:: Variables that hold kill ring data. 1095 * Internals of Kill Ring:: Variables that hold kill ring data.
1096 1096
1097 Indentation 1097 Indentation
1098 1098
1099 * Primitive Indent:: Functions used to count and insert indentation. 1099 * Primitive Indent:: Functions used to count and insert indentation.
1104 * Motion by Indent:: Move to first non-blank character. 1104 * Motion by Indent:: Move to first non-blank character.
1105 1105
1106 Text Properties 1106 Text Properties
1107 1107
1108 * Examining Properties:: Looking at the properties of one character. 1108 * Examining Properties:: Looking at the properties of one character.
1109 * Changing Properties:: Setting the properties of a range of text. 1109 * Changing Properties:: Setting the properties of a range of text.
1110 * Property Search:: Searching for where a property changes value. 1110 * Property Search:: Searching for where a property changes value.
1111 * Special Properties:: Particular properties with special meanings. 1111 * Special Properties:: Particular properties with special meanings.
1112 * Format Properties:: Properties for representing formatting of text. 1112 * Format Properties:: Properties for representing formatting of text.
1113 * Sticky Properties:: How inserted text gets properties from 1113 * Sticky Properties:: How inserted text gets properties from
1114 neighboring text. 1114 neighboring text.
1115 * Lazy Properties:: Computing text properties in a lazy fashion 1115 * Lazy Properties:: Computing text properties in a lazy fashion
1116 only when text is examined. 1116 only when text is examined.
1117 * Clickable Text:: Using text properties to make regions of text 1117 * Clickable Text:: Using text properties to make regions of text
1118 do something when you click on them. 1118 do something when you click on them.
1119 * Fields:: The @code{field} property defines 1119 * Fields:: The @code{field} property defines
1120 fields within the buffer. 1120 fields within the buffer.
1121 * Not Intervals:: Why text properties do not use 1121 * Not Intervals:: Why text properties do not use
1122 Lisp-visible text intervals. 1122 Lisp-visible text intervals.
1123 1123
1124 Non-@acronym{ASCII} Characters 1124 Non-@acronym{ASCII} Characters
1125 1125
1126 * Text Representations:: How Emacs represents text. 1126 * Text Representations:: How Emacs represents text.
1127 * Converting Representations:: Converting unibyte to multibyte and vice versa. 1127 * Converting Representations:: Converting unibyte to multibyte and vice versa.
1160 * Regular Expressions:: Describing classes of strings. 1160 * Regular Expressions:: Describing classes of strings.
1161 * Regexp Search:: Searching for a match for a regexp. 1161 * Regexp Search:: Searching for a match for a regexp.
1162 * POSIX Regexps:: Searching POSIX-style for the longest match. 1162 * POSIX Regexps:: Searching POSIX-style for the longest match.
1163 * Match Data:: Finding out which part of the text matched, 1163 * Match Data:: Finding out which part of the text matched,
1164 after a string or regexp search. 1164 after a string or regexp search.
1165 * Search and Replace:: Commands that loop, searching and replacing. 1165 * Search and Replace:: Commands that loop, searching and replacing.
1166 * Standard Regexps:: Useful regexps for finding sentences, pages,... 1166 * Standard Regexps:: Useful regexps for finding sentences, pages,...
1167 1167
1168 Regular Expressions 1168 Regular Expressions
1169 1169
1170 * Syntax of Regexps:: Rules for writing regular expressions. 1170 * Syntax of Regexps:: Rules for writing regular expressions.
1177 * Char Classes:: Character classes used in regular expressions. 1177 * Char Classes:: Character classes used in regular expressions.
1178 * Regexp Backslash:: Backslash-sequences in regular expressions. 1178 * Regexp Backslash:: Backslash-sequences in regular expressions.
1179 1179
1180 The Match Data 1180 The Match Data
1181 1181
1182 * Replacing Match:: Replacing a substring that was matched. 1182 * Replacing Match:: Replacing a substring that was matched.
1183 * Simple Match Data:: Accessing single items of match data, 1183 * Simple Match Data:: Accessing single items of match data,
1184 such as where a particular subexpression started. 1184 such as where a particular subexpression started.
1185 * Entire Match Data:: Accessing the entire match data at once, as a list. 1185 * Entire Match Data:: Accessing the entire match data at once, as a list.
1186 * Saving Match Data:: Saving and restoring the match data. 1186 * Saving Match Data:: Saving and restoring the match data.
1187 1187
1188 Syntax Tables 1188 Syntax Tables
1189 1189
1190 * Syntax Basics:: Basic concepts of syntax tables. 1190 * Syntax Basics:: Basic concepts of syntax tables.
1191 * Syntax Descriptors:: How characters are classified. 1191 * Syntax Descriptors:: How characters are classified.
1192 * Syntax Table Functions:: How to create, examine and alter syntax tables. 1192 * Syntax Table Functions:: How to create, examine and alter syntax tables.
1193 * Syntax Properties:: Overriding syntax with text properties. 1193 * Syntax Properties:: Overriding syntax with text properties.
1194 * Motion and Syntax:: Moving over characters with certain syntaxes. 1194 * Motion and Syntax:: Moving over characters with certain syntaxes.
1195 * Parsing Expressions:: Parsing balanced expressions 1195 * Parsing Expressions:: Parsing balanced expressions
1196 using the syntax table. 1196 using the syntax table.
1197 * Standard Syntax Tables:: Syntax tables used by various major modes. 1197 * Standard Syntax Tables:: Syntax tables used by various major modes.
1198 * Syntax Table Internals:: How syntax table information is stored. 1198 * Syntax Table Internals:: How syntax table information is stored.
1199 * Categories:: Another way of classifying character syntax. 1199 * Categories:: Another way of classifying character syntax.
1278 * The Echo Area:: Displaying messages at the bottom of the screen. 1278 * The Echo Area:: Displaying messages at the bottom of the screen.
1279 * Warnings:: Displaying warning messages for the user. 1279 * Warnings:: Displaying warning messages for the user.
1280 * Invisible Text:: Hiding part of the buffer text. 1280 * Invisible Text:: Hiding part of the buffer text.
1281 * Selective Display:: Hiding part of the buffer text (the old way). 1281 * Selective Display:: Hiding part of the buffer text (the old way).
1282 * Temporary Displays:: Displays that go away automatically. 1282 * Temporary Displays:: Displays that go away automatically.
1283 * Overlays:: Use overlays to highlight parts of the buffer. 1283 * Overlays:: Use overlays to highlight parts of the buffer.
1284 * Width:: How wide a character or string is on the screen. 1284 * Width:: How wide a character or string is on the screen.
1285 * Line Height:: Controlling the height of lines. 1285 * Line Height:: Controlling the height of lines.
1286 * Faces:: A face defines a graphics style 1286 * Faces:: A face defines a graphics style
1287 for text characters: font, colors, etc. 1287 for text characters: font, colors, etc.
1288 * Fringes:: Controlling window fringes. 1288 * Fringes:: Controlling window fringes.
1289 * Scroll Bars:: Controlling vertical scroll bars. 1289 * Scroll Bars:: Controlling vertical scroll bars.
1290 * Display Property:: Enabling special display features. 1290 * Display Property:: Enabling special display features.
1291 * Images:: Displaying images in Emacs buffers. 1291 * Images:: Displaying images in Emacs buffers.
1292 * Buttons:: Adding clickable buttons to Emacs buffers. 1292 * Buttons:: Adding clickable buttons to Emacs buffers.
1293 * Abstract Display:: Emacs' Widget for Object Collections. 1293 * Abstract Display:: Emacs' Widget for Object Collections.
1294 * Blinking:: How Emacs shows the matching open parenthesis. 1294 * Blinking:: How Emacs shows the matching open parenthesis.
1295 * Usual Display:: The usual conventions for displaying 1295 * Usual Display:: The usual conventions for displaying
1296 nonprinting chars. 1296 nonprinting chars.
1297 * Display Tables:: How to specify other conventions. 1297 * Display Tables:: How to specify other conventions.
1298 * Beeping:: Audible signal to the user. 1298 * Beeping:: Audible signal to the user.
1299 * Window Systems:: Which window system is being used. 1299 * Window Systems:: Which window system is being used.
1300 1300
1301 The Echo Area 1301 The Echo Area
1302 1302
1314 1314
1315 Overlays 1315 Overlays
1316 1316
1317 * Managing Overlays:: Creating and moving overlays. 1317 * Managing Overlays:: Creating and moving overlays.
1318 * Overlay Properties:: How to read and set properties. 1318 * Overlay Properties:: How to read and set properties.
1319 What properties do to the screen display. 1319 What properties do to the screen display.
1320 * Finding Overlays:: Searching for overlays. 1320 * Finding Overlays:: Searching for overlays.
1321 1321
1322 Faces 1322 Faces
1323 1323
1324 * Defining Faces:: How to define a face with @code{defface}. 1324 * Defining Faces:: How to define a face with @code{defface}.
1394 1394
1395 * Starting Up:: Customizing Emacs startup processing. 1395 * Starting Up:: Customizing Emacs startup processing.
1396 * Getting Out:: How exiting works (permanent or temporary). 1396 * Getting Out:: How exiting works (permanent or temporary).
1397 * System Environment:: Distinguish the name and kind of system. 1397 * System Environment:: Distinguish the name and kind of system.
1398 * User Identification:: Finding the name and user id of the user. 1398 * User Identification:: Finding the name and user id of the user.
1399 * Time of Day:: Getting the current time. 1399 * Time of Day:: Getting the current time.
1400 * Time Conversion:: Converting a time from numeric form to 1400 * Time Conversion:: Converting a time from numeric form to
1401 calendrical data and vice versa. 1401 calendrical data and vice versa.
1402 * Time Parsing:: Converting a time from numeric form to text 1402 * Time Parsing:: Converting a time from numeric form to text
1403 and vice versa. 1403 and vice versa.
1404 * Processor Run Time:: Getting the run time used by Emacs. 1404 * Processor Run Time:: Getting the run time used by Emacs.
1405 * Time Calculations:: Adding, subtracting, comparing times, etc. 1405 * Time Calculations:: Adding, subtracting, comparing times, etc.
1406 * Timers:: Setting a timer to call a function at a 1406 * Timers:: Setting a timer to call a function at a
1407 certain time. 1407 certain time.
1408 * Idle Timers:: Setting a timer to call a function when Emacs has 1408 * Idle Timers:: Setting a timer to call a function when Emacs has
1409 been idle for a certain length of time. 1409 been idle for a certain length of time.
1410 * Terminal Input:: Accessing and recording terminal input. 1410 * Terminal Input:: Accessing and recording terminal input.
1411 * Terminal Output:: Controlling and recording terminal output. 1411 * Terminal Output:: Controlling and recording terminal output.
1428 * Killing Emacs:: Exiting Emacs irreversibly. 1428 * Killing Emacs:: Exiting Emacs irreversibly.
1429 * Suspending Emacs:: Exiting Emacs reversibly. 1429 * Suspending Emacs:: Exiting Emacs reversibly.
1430 1430
1431 Terminal Input 1431 Terminal Input
1432 1432
1433 * Input Modes:: Options for how input is processed. 1433 * Input Modes:: Options for how input is processed.
1434 * Recording Input:: Saving histories of recent or all input events. 1434 * Recording Input:: Saving histories of recent or all input events.
1435 1435
1436 Tips and Conventions 1436 Tips and Conventions
1437 1437
1438 * Coding Conventions:: Conventions for clean and robust programs. 1438 * Coding Conventions:: Conventions for clean and robust programs.
1439 * Key Binding Conventions:: Which keys should be bound by which programs. 1439 * Key Binding Conventions:: Which keys should be bound by which programs.
1440 * Programming Tips:: Making Emacs code fit smoothly in Emacs. 1440 * Programming Tips:: Making Emacs code fit smoothly in Emacs.
1441 * Compilation Tips:: Making compiled code run fast. 1441 * Compilation Tips:: Making compiled code run fast.
1442 * Warning Tips:: Turning off compiler warnings. 1442 * Warning Tips:: Turning off compiler warnings.
1443 * Documentation Tips:: Writing readable documentation strings. 1443 * Documentation Tips:: Writing readable documentation strings.
1444 * Comment Tips:: Conventions for writing comments. 1444 * Comment Tips:: Conventions for writing comments.
1445 * Library Headers:: Standard headers for library packages. 1445 * Library Headers:: Standard headers for library packages.
1446 1446
1447 GNU Emacs Internals 1447 GNU Emacs Internals
1448 1448
1449 * Building Emacs:: How the dumped Emacs is made. 1449 * Building Emacs:: How the dumped Emacs is made.