Mercurial > emacs
comparison lispref/elisp.texi @ 90751:52a7f3f50b89
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 624-636)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 200-201)
- Merge from emacs--devo--0
- Update from CVS: lisp/nnweb.el (nnweb-google-parse-1): Update parser.
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-171
author | Miles Bader <miles@gnu.org> |
---|---|
date | Tue, 13 Feb 2007 12:14:16 +0000 |
parents | f83d17e1ace6 c20ac93d4e8a |
children | dd7c098af727 |
comparison
equal
deleted
inserted
replaced
90750:f8cc067aba62 | 90751:52a7f3f50b89 |
---|---|
168 | 168 |
169 @ignore | 169 @ignore |
170 * New Symbols:: New functions and variables in Emacs @value{EMACSVER}. | 170 * New Symbols:: New functions and variables in Emacs @value{EMACSVER}. |
171 @end ignore | 171 @end ignore |
172 | 172 |
173 Detailed Node Listing | 173 @c Do NOT modify the following 3 lines! They must have this form to |
174 --------------------- | 174 @c be correctly identified by `texinfo-multiple-files-update'. In |
175 @c particular, the detailed menu header line MUST be identical to the | |
176 @c value of `texinfo-master-menu-header'. See texnfo-upd.el. | |
177 | |
178 @detailmenu | |
179 --- The Detailed Node Listing --- | |
180 --------------------------------- | |
175 | 181 |
176 Here are other nodes that are inferiors of those already listed, | 182 Here are other nodes that are inferiors of those already listed, |
177 mentioned here so you can get to them in one step: | 183 mentioned here so you can get to them in one step: |
178 | 184 |
179 Introduction | 185 Introduction |
194 * Buffer Text Notation:: The format we use for buffer contents in examples. | 200 * Buffer Text Notation:: The format we use for buffer contents in examples. |
195 * Format of Descriptions:: Notation for describing functions, variables, etc. | 201 * Format of Descriptions:: Notation for describing functions, variables, etc. |
196 | 202 |
197 Format of Descriptions | 203 Format of Descriptions |
198 | 204 |
199 * A Sample Function Description:: | 205 * A Sample Function Description:: A description of an imaginary |
200 * A Sample Variable Description:: | 206 function, @code{foo}. |
207 * A Sample Variable Description:: A description of an imaginary | |
208 variable, @code{electric-future-map}. | |
201 | 209 |
202 Lisp Data Types | 210 Lisp Data Types |
203 | 211 |
204 * Printed Representation:: How Lisp objects are represented as text. | 212 * Printed Representation:: How Lisp objects are represented as text. |
205 * Comments:: Comments and their formatting conventions. | 213 * Comments:: Comments and their formatting conventions. |
231 * Primitive Function Type:: A function written in C, callable from Lisp. | 239 * Primitive Function Type:: A function written in C, callable from Lisp. |
232 * Byte-Code Type:: A function written in Lisp, then compiled. | 240 * Byte-Code Type:: A function written in Lisp, then compiled. |
233 * Autoload Type:: A type used for automatically loading seldom-used | 241 * Autoload Type:: A type used for automatically loading seldom-used |
234 functions. | 242 functions. |
235 | 243 |
244 Character Type | |
245 | |
246 * Basic Char Syntax:: Syntax for regular characters. | |
247 * General Escape Syntax:: How to specify characters by their codes. | |
248 * Ctl-Char Syntax:: Syntax for control characters. | |
249 * Meta-Char Syntax:: Syntax for meta-characters. | |
250 * Other Char Bits:: Syntax for hyper-, super-, and alt-characters. | |
251 | |
236 Cons Cell and List Types | 252 Cons Cell and List Types |
237 | 253 |
238 * Box Diagrams:: Drawing pictures of lists. | 254 * Box Diagrams:: Drawing pictures of lists. |
239 * Dotted Pair Notation:: An alternative syntax for lists. | 255 * Dotted Pair Notation:: An alternative syntax for lists. |
240 * Association List Type:: A specially constructed list. | 256 * Association List Type:: A specially constructed list. |
257 | |
258 String Type | |
259 | |
260 * Syntax for Strings:: How to specify Lisp strings. | |
261 * Non-ASCII in Strings:: International characters in strings. | |
262 * Nonprinting Characters:: Literal unprintable characters in strings. | |
263 * Text Props and Strings:: Strings with text properties. | |
241 | 264 |
242 Editing Types | 265 Editing Types |
243 | 266 |
244 * Buffer Type:: The basic object of editing. | 267 * Buffer Type:: The basic object of editing. |
245 * Marker Type:: A position in a buffer. | 268 * Marker Type:: A position in a buffer. |
246 * Window Type:: What makes buffers visible. | 269 * Window Type:: What makes buffers visible. |
247 * Frame Type:: Windows subdivide frames. | 270 * Frame Type:: Windows subdivide frames. |
248 * Window Configuration Type::Save what the screen looks like. | 271 * Window Configuration Type:: Recording the way a frame is subdivided. |
249 * Frame Configuration Type::Recording the status of all frames. | 272 * Frame Configuration Type:: Recording the status of all frames. |
250 * Process Type:: A process running on the underlying OS. | 273 * Process Type:: A process running on the underlying OS. |
251 * Stream Type:: Receive or send characters. | 274 * Stream Type:: Receive or send characters. |
252 * Keymap Type:: What function a keystroke invokes. | 275 * Keymap Type:: What function a keystroke invokes. |
253 * Overlay Type:: How an overlay is represented. | 276 * Overlay Type:: How an overlay is represented. |
254 | 277 |
255 Numbers | 278 Numbers |
256 | 279 |
257 * Integer Basics:: Representation and range of integers. | 280 * Integer Basics:: Representation and range of integers. |
258 * Float Basics:: Representation and range of floating point. | 281 * Float Basics:: Representation and range of floating point. |
259 * Predicates on Numbers:: Testing for numbers. | 282 * Predicates on Numbers:: Testing for numbers. |
260 * Comparison of Numbers:: Equality and inequality predicates. | 283 * Comparison of Numbers:: Equality and inequality predicates. |
261 * Numeric Conversions:: Converting float to integer and vice versa. | 284 * Numeric Conversions:: Converting float to integer and vice versa. |
262 * Arithmetic Operations:: How to add, subtract, multiply and divide. | 285 * Arithmetic Operations:: How to add, subtract, multiply and divide. |
263 * Rounding Operations:: Explicitly rounding floating point numbers. | 286 * Rounding Operations:: Explicitly rounding floating point numbers. |
264 * Bitwise Operations:: Logical and, or, not, shifting. | 287 * Bitwise Operations:: Logical and, or, not, shifting. |
265 * Math Functions:: Trig, exponential and logarithmic functions. | 288 * Math Functions:: Trig, exponential and logarithmic functions. |
266 * Random Numbers:: Obtaining random integers, predictable or not. | 289 * Random Numbers:: Obtaining random integers, predictable or not. |
267 | 290 |
268 Strings and Characters | 291 Strings and Characters |
269 | 292 |
270 * String Basics:: Basic properties of strings and characters. | 293 * String Basics:: Basic properties of strings and characters. |
271 * Predicates for Strings:: Testing whether an object is a string or char. | 294 * Predicates for Strings:: Testing whether an object is a string or char. |
272 * Creating Strings:: Functions to allocate new strings. | 295 * Creating Strings:: Functions to allocate new strings. |
273 * Modifying Strings:: Altering the contents of an existing string. | 296 * Modifying Strings:: Altering the contents of an existing string. |
274 * Text Comparison:: Comparing characters or strings. | 297 * Text Comparison:: Comparing characters or strings. |
275 * String Conversion:: Converting characters or strings and vice versa. | 298 * String Conversion:: Converting characters to strings and vice versa. |
276 * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. | 299 * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. |
277 * Case Conversion:: Case conversion functions. | 300 * Case Conversion:: Case conversion functions. |
278 * Case Tables:: Customizing case conversion. | 301 * Case Tables:: Customizing case conversion. |
279 | 302 |
280 Lists | 303 Lists |
281 | 304 |
282 * Cons Cells:: How lists are made out of cons cells. | 305 * Cons Cells:: How lists are made out of cons cells. |
283 * List-related Predicates:: Is this object a list? Comparing two lists. | 306 * List-related Predicates:: Is this object a list? Comparing two lists. |
284 * List Elements:: Extracting the pieces of a list. | 307 * List Elements:: Extracting the pieces of a list. |
285 * Building Lists:: Creating list structure. | 308 * Building Lists:: Creating list structure. |
309 * List Variables:: Modifying lists stored in variables. | |
286 * Modifying Lists:: Storing new pieces into an existing list. | 310 * Modifying Lists:: Storing new pieces into an existing list. |
287 * Sets And Lists:: A list can represent a finite mathematical set. | 311 * Sets And Lists:: A list can represent a finite mathematical set. |
288 * Association Lists:: A list can represent a finite relation or mapping. | 312 * Association Lists:: A list can represent a finite relation or mapping. |
289 * Rings:: Managing a fixed-size ring of objects. | 313 * Rings:: Managing a fixed-size ring of objects. |
290 | 314 |
298 Sequences, Arrays, and Vectors | 322 Sequences, Arrays, and Vectors |
299 | 323 |
300 * Sequence Functions:: Functions that accept any kind of sequence. | 324 * Sequence Functions:: Functions that accept any kind of sequence. |
301 * Arrays:: Characteristics of arrays in Emacs Lisp. | 325 * Arrays:: Characteristics of arrays in Emacs Lisp. |
302 * Array Functions:: Functions specifically for arrays. | 326 * Array Functions:: Functions specifically for arrays. |
303 * Vectors:: Functions specifically for vectors. | 327 * Vectors:: Special characteristics of Emacs Lisp vectors. |
304 * Vector Functions:: Functions specifically for vectors. | 328 * Vector Functions:: Functions specifically for vectors. |
305 * Char-Tables:: How to work with char-tables. | 329 * Char-Tables:: How to work with char-tables. |
306 * Bool-Vectors:: How to work with bool-vectors. | 330 * Bool-Vectors:: How to work with bool-vectors. |
307 | 331 |
308 Hash Tables | 332 Hash Tables |
318 and property lists. | 342 and property lists. |
319 * Definitions:: A definition says how a symbol will be used. | 343 * Definitions:: A definition says how a symbol will be used. |
320 * Creating Symbols:: How symbols are kept unique. | 344 * Creating Symbols:: How symbols are kept unique. |
321 * Property Lists:: Each symbol has a property list | 345 * Property Lists:: Each symbol has a property list |
322 for recording miscellaneous information. | 346 for recording miscellaneous information. |
347 | |
348 Property Lists | |
349 | |
350 * Plists and Alists:: Comparison of the advantages of property | |
351 lists and association lists. | |
352 * Symbol Plists:: Functions to access symbols' property lists. | |
353 * Other Plists:: Accessing property lists stored elsewhere. | |
323 | 354 |
324 Evaluation | 355 Evaluation |
325 | 356 |
326 * Intro Eval:: Evaluation in the scheme of things. | 357 * Intro Eval:: Evaluation in the scheme of things. |
327 * Forms:: How various sorts of objects are evaluated. | 358 * Forms:: How various sorts of objects are evaluated. |
440 * Backquote:: Easier construction of list structure. | 471 * Backquote:: Easier construction of list structure. |
441 * Problems with Macros:: Don't evaluate the macro arguments too many times. | 472 * Problems with Macros:: Don't evaluate the macro arguments too many times. |
442 Don't hide the user's variables. | 473 Don't hide the user's variables. |
443 * Indenting Macros:: Specifying how to indent macro calls. | 474 * Indenting Macros:: Specifying how to indent macro calls. |
444 | 475 |
476 Common Problems Using Macros | |
477 | |
478 * Wrong Time:: Do the work in the expansion, not in the macro. | |
479 * Argument Evaluation:: The expansion should evaluate each macro arg once. | |
480 * Surprising Local Vars:: Local variable bindings in the expansion | |
481 require special care. | |
482 * Eval During Expansion:: Don't evaluate them; put them in the expansion. | |
483 * Repeated Expansion:: Avoid depending on how many times expansion is done. | |
484 | |
445 Writing Customization Definitions | 485 Writing Customization Definitions |
446 | 486 |
447 * Common Keywords:: Common keyword arguments for all kinds of | 487 * Common Keywords:: Common keyword arguments for all kinds of |
448 customization declarations. | 488 customization declarations. |
449 * Group Definitions:: Writing customization group definitions. | 489 * Group Definitions:: Writing customization group definitions. |
450 * Variable Definitions:: Declaring user options. | 490 * Variable Definitions:: Declaring user options. |
451 * Customization Types:: Specifying the type of a user option. | 491 * Customization Types:: Specifying the type of a user option. |
492 | |
493 Customization Types | |
494 | |
495 * Simple Types:: Simple customization types: sexp, integer, number, | |
496 string, file, directory, alist. | |
497 * Composite Types:: Build new types from other types or data. | |
498 * Splicing into Lists:: Splice elements into list with @code{:inline}. | |
499 * Type Keywords:: Keyword-argument pairs in a customization type. | |
500 * Defining New Types:: Give your type a name. | |
452 | 501 |
453 Loading | 502 Loading |
454 | 503 |
455 * How Programs Do Loading:: The @code{load} function and others. | 504 * How Programs Do Loading:: The @code{load} function and others. |
456 * Load Suffixes:: Details about the suffixes that @code{load} tries. | 505 * Load Suffixes:: Details about the suffixes that @code{load} tries. |
600 * Using Interactive:: General rules for @code{interactive}. | 649 * Using Interactive:: General rules for @code{interactive}. |
601 * Interactive Codes:: The standard letter-codes for reading arguments | 650 * Interactive Codes:: The standard letter-codes for reading arguments |
602 in various ways. | 651 in various ways. |
603 * Interactive Examples:: Examples of how to read interactive arguments. | 652 * Interactive Examples:: Examples of how to read interactive arguments. |
604 | 653 |
654 Input Events | |
655 | |
656 * Keyboard Events:: Ordinary characters--keys with symbols on them. | |
657 * Function Keys:: Function keys--keys with names, not symbols. | |
658 * Mouse Events:: Overview of mouse events. | |
659 * Click Events:: Pushing and releasing a mouse button. | |
660 * Drag Events:: Moving the mouse before releasing the button. | |
661 * Button-Down Events:: A button was pushed and not yet released. | |
662 * Repeat Events:: Double and triple click (or drag, or down). | |
663 * Motion Events:: Just moving the mouse, not pushing a button. | |
664 * Focus Events:: Moving the mouse between frames. | |
665 * Misc Events:: Other events the system can generate. | |
666 * Event Examples:: Examples of the lists for mouse events. | |
667 * Classifying Events:: Finding the modifier keys in an event symbol. | |
668 * Accessing Events:: Functions to extract info from events. | |
669 * Strings of Events:: Special considerations for putting | |
670 keyboard character events in a string. | |
671 | |
672 Reading Input | |
673 | |
674 * Key Sequence Input:: How to read one key sequence. | |
675 * Reading One Event:: How to read just one event. | |
676 * Event Mod:: How Emacs modifies events as they are read. | |
677 * Invoking the Input Method:: How reading an event uses the input method. | |
678 * Quoted Character Input:: Asking the user to specify a character. | |
679 * Event Input Misc:: How to reread or throw away input events. | |
680 | |
605 Keymaps | 681 Keymaps |
606 | 682 |
607 * Key Sequences:: Key sequences as Lisp objects. | 683 * Key Sequences:: Key sequences as Lisp objects. |
608 * Keymap Basics:: Basic concepts of keymaps. | 684 * Keymap Basics:: Basic concepts of keymaps. |
609 * Format of Keymaps:: What a keymap looks like as a Lisp object. | 685 * Format of Keymaps:: What a keymap looks like as a Lisp object. |
610 * Creating Keymaps:: Functions to create and copy keymaps. | 686 * Creating Keymaps:: Functions to create and copy keymaps. |
611 * Inheritance and Keymaps:: How one keymap can inherit the bindings | 687 * Inheritance and Keymaps:: How one keymap can inherit the bindings |
612 of another keymap. | 688 of another keymap. |
613 * Prefix Keys:: Defining a key with a keymap as its definition. | 689 * Prefix Keys:: Defining a key with a keymap as its definition. |
614 * Active Keymaps:: Each buffer has a local keymap | 690 * Active Keymaps:: How Emacs searches the active keymaps |
615 to override the standard (global) bindings. | 691 for a key binding. |
616 Each minor mode can also override them. | 692 * Searching Keymaps:: A pseudo-Lisp summary of searching active maps. |
617 * Key Lookup:: How extracting elements from keymaps works. | 693 * Controlling Active Maps:: Each buffer has a local keymap |
694 to override the standard (global) bindings. | |
695 A minor mode can also override them. | |
696 * Key Lookup:: How extracting elements from keymaps works. | |
618 * Functions for Key Lookup:: How to request key lookup. | 697 * Functions for Key Lookup:: How to request key lookup. |
619 * Changing Key Bindings:: Redefining a key in a keymap. | 698 * Changing Key Bindings:: Redefining a key in a keymap. |
620 * Remapping Commands:: A keymap can translate one command to another. | 699 * Remapping Commands:: A keymap can translate one command to another. |
621 * Key Binding Commands:: Interactive interfaces for redefining keys. | 700 * Translation Keymaps:: Keymaps for translating sequences of events. |
622 * Scanning Keymaps:: Looking through all keymaps, for printing help. | 701 * Key Binding Commands:: Interactive interfaces for redefining keys. |
623 * Menu Keymaps:: A keymap can define a menu for X | 702 * Scanning Keymaps:: Looking through all keymaps, for printing help. |
624 or for use from the terminal. | 703 * Menu Keymaps:: A keymap can define a menu for X |
625 * Standard Keymaps:: List of standard keymaps. | 704 or for use from the terminal. |
705 * Standard Keymaps:: List of standard keymaps. | |
626 | 706 |
627 Major and Minor Modes | 707 Major and Minor Modes |
628 | 708 |
629 * Hooks:: How to use hooks; how to write code that | 709 * Hooks:: How to use hooks; how to write code that |
630 provides hooks. | 710 provides hooks. |
635 of definitions in the buffer. | 715 of definitions in the buffer. |
636 * Font Lock Mode:: How modes can highlight text according to syntax. | 716 * Font Lock Mode:: How modes can highlight text according to syntax. |
637 * Desktop Save Mode:: How modes can have buffer state saved between | 717 * Desktop Save Mode:: How modes can have buffer state saved between |
638 Emacs sessions. | 718 Emacs sessions. |
639 | 719 |
720 Menu Keymaps | |
721 | |
722 * Defining Menus:: How to make a keymap that defines a menu. | |
723 * Mouse Menus:: How users actuate the menu with the mouse. | |
724 * Keyboard Menus:: How users actuate the menu with the keyboard. | |
725 * Menu Example:: Making a simple menu. | |
726 * Menu Bar:: How to customize the menu bar. | |
727 * Tool Bar:: A tool bar is a row of images. | |
728 * Modifying Menus:: How to add new items to a menu. | |
729 | |
730 Defining Menus | |
731 | |
732 * Simple Menu Items:: A simple kind of menu key binding, | |
733 limited in capabilities. | |
734 * Extended Menu Items:: More powerful menu item definitions | |
735 let you specify keywords to enable | |
736 various features. | |
737 * Menu Separators:: Drawing a horizontal line through a menu. | |
738 * Alias Menu Items:: Using command aliases in menu items. | |
739 | |
740 Major and Minor Modes | |
741 | |
742 * Hooks:: How to use hooks; how to write code that provides hooks. | |
743 * Major Modes:: Defining major modes. | |
744 * Minor Modes:: Defining minor modes. | |
745 * Mode Line Format:: Customizing the text that appears in the mode line. | |
746 * Imenu:: How a mode can provide a menu | |
747 of definitions in the buffer. | |
748 * Font Lock Mode:: How modes can highlight text according to syntax. | |
749 * Desktop Save Mode:: How modes can have buffer state saved between | |
750 Emacs sessions. | |
751 | |
640 Major Modes | 752 Major Modes |
641 | 753 |
642 * Major Mode Basics:: | 754 * Major Mode Basics:: |
643 * Major Mode Conventions:: Coding conventions for keymaps, etc. | 755 * Major Mode Conventions:: Coding conventions for keymaps, etc. |
644 * Example Major Modes:: Text mode and Lisp modes. | 756 * Example Major Modes:: Text mode and Lisp modes. |
663 * Mode Line Variables:: Variables used in that data structure. | 775 * Mode Line Variables:: Variables used in that data structure. |
664 * %-Constructs:: Putting information into a mode line. | 776 * %-Constructs:: Putting information into a mode line. |
665 * Properties in Mode:: Using text properties in the mode line. | 777 * Properties in Mode:: Using text properties in the mode line. |
666 * Header Lines:: Like a mode line, but at the top. | 778 * Header Lines:: Like a mode line, but at the top. |
667 * Emulating Mode Line:: Formatting text as the mode line would. | 779 * Emulating Mode Line:: Formatting text as the mode line would. |
780 | |
781 Font Lock Mode | |
782 | |
783 * Font Lock Basics:: Overview of customizing Font Lock. | |
784 * Search-based Fontification:: Fontification based on regexps. | |
785 * Customizing Keywords:: Customizing search-based fontification. | |
786 * Other Font Lock Variables:: Additional customization facilities. | |
787 * Levels of Font Lock:: Each mode can define alternative levels | |
788 so that the user can select more or less. | |
789 * Precalculated Fontification:: How Lisp programs that produce the buffer | |
790 contents can also specify how to fontify it. | |
791 * Faces for Font Lock:: Special faces specifically for Font Lock. | |
792 * Syntactic Font Lock:: Fontification based on syntax tables. | |
793 * Setting Syntax Properties:: Defining character syntax based on context | |
794 using the Font Lock mechanism. | |
795 * Multiline Font Lock:: How to coerce Font Lock into properly | |
796 highlighting multiline constructs. | |
797 | |
798 Multiline Font Lock Constructs | |
799 | |
800 * Font Lock Multiline:: Marking multiline chunks with a text property | |
801 * Region to Fontify:: Controlling which region gets refontified | |
802 after a buffer change. | |
668 | 803 |
669 Documentation | 804 Documentation |
670 | 805 |
671 * Documentation Basics:: Good style for doc strings. | 806 * Documentation Basics:: Good style for doc strings. |
672 Where to put them. How Emacs stores them. | 807 Where to put them. How Emacs stores them. |
702 | 837 |
703 * Testing Accessibility:: Is a given file readable? Writable? | 838 * Testing Accessibility:: Is a given file readable? Writable? |
704 * Kinds of Files:: Is it a directory? A symbolic link? | 839 * Kinds of Files:: Is it a directory? A symbolic link? |
705 * Truenames:: Eliminating symbolic links from a file name. | 840 * Truenames:: Eliminating symbolic links from a file name. |
706 * File Attributes:: How large is it? Any other names? Etc. | 841 * File Attributes:: How large is it? Any other names? Etc. |
842 * Locating Files:: How to find a file in standard places. | |
707 | 843 |
708 File Names | 844 File Names |
709 | 845 |
710 * File Name Components:: The directory part of a file name, and the rest. | 846 * File Name Components:: The directory part of a file name, and the rest. |
711 * Relative File Names:: Some file names are relative to a | 847 * Relative File Names:: Some file names are relative to a |
743 * Buffer Names:: Accessing and changing buffer names. | 879 * Buffer Names:: Accessing and changing buffer names. |
744 * Buffer File Name:: The buffer file name indicates which file | 880 * Buffer File Name:: The buffer file name indicates which file |
745 is visited. | 881 is visited. |
746 * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved. | 882 * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved. |
747 * Modification Time:: Determining whether the visited file was changed | 883 * Modification Time:: Determining whether the visited file was changed |
748 "behind Emacs's back". | 884 ``behind Emacs's back''. |
749 * Read Only Buffers:: Modifying text is not allowed in a | 885 * Read Only Buffers:: Modifying text is not allowed in a |
750 read-only buffer. | 886 read-only buffer. |
751 * The Buffer List:: How to look at all the existing buffers. | 887 * The Buffer List:: How to look at all the existing buffers. |
752 * Creating Buffers:: Functions that create buffers. | 888 * Creating Buffers:: Functions that create buffers. |
753 * Killing Buffers:: Buffers exist until explicitly killed. | 889 * Killing Buffers:: Buffers exist until explicitly killed. |
761 * Splitting Windows:: Splitting one window into two windows. | 897 * Splitting Windows:: Splitting one window into two windows. |
762 * Deleting Windows:: Deleting a window gives its space to other windows. | 898 * Deleting Windows:: Deleting a window gives its space to other windows. |
763 * Selecting Windows:: The selected window is the one that you edit in. | 899 * Selecting Windows:: The selected window is the one that you edit in. |
764 * Cyclic Window Ordering:: Moving around the existing windows. | 900 * Cyclic Window Ordering:: Moving around the existing windows. |
765 * Buffers and Windows:: Each window displays the contents of a buffer. | 901 * Buffers and Windows:: Each window displays the contents of a buffer. |
766 * Displaying Buffers:: Higher-lever functions for displaying a buffer | 902 * Displaying Buffers:: Higher-level functions for displaying a buffer |
767 and choosing a window for it. | 903 and choosing a window for it. |
768 * Choosing Window:: How to choose a window for displaying a buffer. | 904 * Choosing Window:: How to choose a window for displaying a buffer. |
769 * Window Point:: Each window has its own location of point. | 905 * Window Point:: Each window has its own location of point. |
770 * Window Start:: The display-start position controls which text | 906 * Window Start:: The display-start position controls which text |
771 is on-screen in the window. | 907 is on-screen in the window. |
773 * Vertical Scrolling:: Moving the contents up and down on the window. | 909 * Vertical Scrolling:: Moving the contents up and down on the window. |
774 * Horizontal Scrolling:: Moving the contents sideways on the window. | 910 * Horizontal Scrolling:: Moving the contents sideways on the window. |
775 * Size of Window:: Accessing the size of a window. | 911 * Size of Window:: Accessing the size of a window. |
776 * Resizing Windows:: Changing the size of a window. | 912 * Resizing Windows:: Changing the size of a window. |
777 * Coordinates and Windows:: Converting coordinates to windows. | 913 * Coordinates and Windows:: Converting coordinates to windows. |
914 * Window Tree:: The layout and sizes of all windows in a frame. | |
778 * Window Configurations:: Saving and restoring the state of the screen. | 915 * Window Configurations:: Saving and restoring the state of the screen. |
779 * Window Hooks:: Hooks for scrolling, window size changes, | 916 * Window Hooks:: Hooks for scrolling, window size changes, |
780 redisplay going past a certain point, | 917 redisplay going past a certain point, |
781 or window configuration changes. | 918 or window configuration changes. |
782 | 919 |
783 Frames | 920 Frames |
784 | 921 |
785 * Creating Frames:: Creating additional frames. | 922 * Creating Frames:: Creating additional frames. |
786 * Multiple Displays:: Creating frames on other X displays. | 923 * Multiple Displays:: Creating frames on other displays. |
787 * Frame Parameters:: Controlling frame size, position, font, etc. | 924 * Frame Parameters:: Controlling frame size, position, font, etc. |
788 * Frame Titles:: Automatic updating of frame titles. | 925 * Frame Titles:: Automatic updating of frame titles. |
789 * Deleting Frames:: Frames last until explicitly deleted. | 926 * Deleting Frames:: Frames last until explicitly deleted. |
790 * Finding All Frames:: How to examine all existing frames. | 927 * Finding All Frames:: How to examine all existing frames. |
791 * Frames and Windows:: A frame contains windows; | 928 * Frames and Windows:: A frame contains windows; |
792 display of text always works through windows. | 929 display of text always works through windows. |
793 * Minibuffers and Frames:: How a frame finds the minibuffer to use. | 930 * Minibuffers and Frames:: How a frame finds the minibuffer to use. |
794 * Input Focus:: Specifying the selected frame. | 931 * Input Focus:: Specifying the selected frame. |
795 * Visibility of Frames:: Frames may be visible or invisible, or icons. | 932 * Visibility of Frames:: Frames may be visible or invisible, or icons. |
796 * Raising and Lowering:: Raising a frame makes it hide other X windows; | 933 * Raising and Lowering:: Raising a frame makes it hide other windows; |
797 lowering it puts it underneath the others. | 934 lowering it puts it underneath the others. |
798 * Frame Configurations:: Saving the state of all frames. | 935 * Frame Configurations:: Saving the state of all frames. |
799 * Mouse Tracking:: Getting events that say when the mouse moves. | 936 * Mouse Tracking:: Getting events that say when the mouse moves. |
800 * Mouse Position:: Asking where the mouse is, or moving it. | 937 * Mouse Position:: Asking where the mouse is, or moving it. |
801 * Pop-Up Menus:: Displaying a menu for the user to select from. | 938 * Pop-Up Menus:: Displaying a menu for the user to select from. |
802 * Dialog Boxes:: Displaying a box to ask yes or no. | 939 * Dialog Boxes:: Displaying a box to ask yes or no. |
803 * Pointer Shape:: Specifying the shape of the mouse pointer. | 940 * Pointer Shape:: Specifying the shape of the mouse pointer. |
804 * Window System Selections::Transferring text to and from other windows. | 941 * Window System Selections::Transferring text to and from other windows. |
942 * Drag and Drop:: Internals of Drag-and-Drop implementation. | |
805 * Color Names:: Getting the definitions of color names. | 943 * Color Names:: Getting the definitions of color names. |
806 * Text Terminal Colors:: Defining colors for text-only terminals. | 944 * Text Terminal Colors:: Defining colors for text-only terminals. |
807 * Resources:: Getting resource values from the server. | 945 * Resources:: Getting resource values from the server. |
808 * Display Feature Testing:: Determining the features of a terminal. | 946 * Display Feature Testing:: Determining the features of a terminal. |
947 | |
948 Frame Parameters | |
949 | |
950 * Parameter Access:: How to change a frame's parameters. | |
951 * Initial Parameters:: Specifying frame parameters when you make a frame. | |
952 * Window Frame Parameters:: List of frame parameters for window systems. | |
953 * Size and Position:: Changing the size and position of a frame. | |
954 * Geometry:: Parsing geometry specifications. | |
955 | |
956 Window Frame Parameters | |
957 | |
958 * Basic Parameters:: Parameters that are fundamental. | |
959 * Position Parameters:: The position of the frame on the screen. | |
960 * Size Parameters:: Frame's size. | |
961 * Layout Parameters:: Size of parts of the frame, and | |
962 enabling or disabling some parts. | |
963 * Buffer Parameters:: Which buffers have been or should be shown. | |
964 * Management Parameters:: Communicating with the window manager. | |
965 * Cursor Parameters:: Controlling the cursor appearance. | |
966 * Color Parameters:: Colors of various parts of the frame. | |
809 | 967 |
810 Positions | 968 Positions |
811 | 969 |
812 * Point:: The special position where editing takes place. | 970 * Point:: The special position where editing takes place. |
813 * Motion:: Changing point. | 971 * Motion:: Changing point. |
914 * Text Representations:: Unibyte and multibyte representations | 1072 * Text Representations:: Unibyte and multibyte representations |
915 * Converting Representations:: Converting unibyte to multibyte and vice versa. | 1073 * Converting Representations:: Converting unibyte to multibyte and vice versa. |
916 * Selecting a Representation:: Treating a byte sequence as unibyte or multi. | 1074 * Selecting a Representation:: Treating a byte sequence as unibyte or multi. |
917 * Character Codes:: How unibyte and multibyte relate to | 1075 * Character Codes:: How unibyte and multibyte relate to |
918 codes of individual characters. | 1076 codes of individual characters. |
919 * Character Sets:: The space of possible characters codes | 1077 * Character Sets:: The space of possible character codes |
920 is divided into various character sets. | 1078 is divided into various character sets. |
921 * Chars and Bytes:: More information about multibyte encodings. | 1079 * Chars and Bytes:: More information about multibyte encodings. |
922 * Splitting Characters:: Converting a character to its byte sequence. | 1080 * Splitting Characters:: Converting a character to its byte sequence. |
923 * Scanning Charsets:: Which character sets are used in a buffer? | 1081 * Scanning Charsets:: Which character sets are used in a buffer? |
924 * Translation of Characters:: Translation tables are used for conversion. | 1082 * Translation of Characters:: Translation tables are used for conversion. |
925 * Coding Systems:: Coding systems are conversions for saving files. | 1083 * Coding Systems:: Coding systems are conversions for saving files. |
926 * Input Methods:: Input methods allow users to enter various | 1084 * Input Methods:: Input methods allow users to enter various |
927 non-ASCII characters without special keyboards. | 1085 non-ASCII characters without special keyboards. |
928 * Locales:: Interacting with the POSIX locale. | 1086 * Locales:: Interacting with the POSIX locale. |
929 | 1087 |
1088 Coding Systems | |
1089 | |
1090 * Coding System Basics:: Basic concepts. | |
1091 * Encoding and I/O:: How file I/O functions handle coding systems. | |
1092 * Lisp and Coding Systems:: Functions to operate on coding system names. | |
1093 * User-Chosen Coding Systems:: Asking the user to choose a coding system. | |
1094 * Default Coding Systems:: Controlling the default choices. | |
1095 * Specifying Coding Systems:: Requesting a particular coding system | |
1096 for a single file operation. | |
1097 * Explicit Encoding:: Encoding or decoding text without doing I/O. | |
1098 * Terminal I/O Encoding:: Use of encoding for terminal I/O. | |
1099 * MS-DOS File Types:: How DOS "text" and "binary" files | |
1100 relate to coding systems. | |
1101 | |
930 Searching and Matching | 1102 Searching and Matching |
931 | 1103 |
932 * String Search:: Search for an exact match. | 1104 * String Search:: Search for an exact match. |
933 * Searching and Case:: Case-independent or case-significant searching. | 1105 * Searching and Case:: Case-independent or case-significant searching. |
934 * Regular Expressions:: Describing classes of strings. | 1106 * Regular Expressions:: Describing classes of strings. |
942 Regular Expressions | 1114 Regular Expressions |
943 | 1115 |
944 * Syntax of Regexps:: Rules for writing regular expressions. | 1116 * Syntax of Regexps:: Rules for writing regular expressions. |
945 * Regexp Example:: Illustrates regular expression syntax. | 1117 * Regexp Example:: Illustrates regular expression syntax. |
946 * Regexp Functions:: Functions for operating on regular expressions. | 1118 * Regexp Functions:: Functions for operating on regular expressions. |
1119 | |
1120 Syntax of Regular Expressions | |
1121 | |
1122 * Regexp Special:: Special characters in regular expressions. | |
1123 * Char Classes:: Character classes used in regular expressions. | |
1124 * Regexp Backslash:: Backslash-sequences in regular expressions. | |
1125 | |
1126 The Match Data | |
1127 | |
1128 * Replacing Match:: Replacing a substring that was matched. | |
1129 * Simple Match Data:: Accessing single items of match data, | |
1130 such as where a particular subexpression started. | |
1131 * Entire Match Data:: Accessing the entire match data at once, as a list. | |
1132 * Saving Match Data:: Saving and restoring the match data. | |
947 | 1133 |
948 Syntax Tables | 1134 Syntax Tables |
949 | 1135 |
950 * Syntax Basics:: Basic concepts of syntax tables. | 1136 * Syntax Basics:: Basic concepts of syntax tables. |
951 * Syntax Descriptors:: How characters are classified. | 1137 * Syntax Descriptors:: How characters are classified. |
960 | 1146 |
961 Syntax Descriptors | 1147 Syntax Descriptors |
962 | 1148 |
963 * Syntax Class Table:: Table of syntax classes. | 1149 * Syntax Class Table:: Table of syntax classes. |
964 * Syntax Flags:: Additional flags each character can have. | 1150 * Syntax Flags:: Additional flags each character can have. |
1151 | |
1152 Parsing Expressions | |
1153 | |
1154 * Motion via Parsing:: Motion functions that work by parsing. | |
1155 * Position Parse:: Determining the syntactic state of a position. | |
1156 * Parser State:: How Emacs represents a syntactic state. | |
1157 * Low-Level Parsing:: Parsing across a specified region. | |
1158 * Control Parsing:: Parameters that affect parsing. | |
965 | 1159 |
966 Abbrevs And Abbrev Expansion | 1160 Abbrevs And Abbrev Expansion |
967 | 1161 |
968 * Abbrev Mode:: Setting up Emacs for abbreviation. | 1162 * Abbrev Mode:: Setting up Emacs for abbreviation. |
969 * Abbrev Tables:: Creating and working with abbrev tables. | 1163 * Abbrev Tables:: Creating and working with abbrev tables. |
999 | 1193 |
1000 * Process Buffers:: If no filter, output is put in a buffer. | 1194 * Process Buffers:: If no filter, output is put in a buffer. |
1001 * Filter Functions:: Filter functions accept output from the process. | 1195 * Filter Functions:: Filter functions accept output from the process. |
1002 * Decoding Output:: Filters can get unibyte or multibyte strings. | 1196 * Decoding Output:: Filters can get unibyte or multibyte strings. |
1003 * Accepting Output:: How to wait until process output arrives. | 1197 * Accepting Output:: How to wait until process output arrives. |
1198 | |
1199 Low-Level Network Access | |
1200 | |
1201 * Proc: Network Processes. Using @code{make-network-process}. | |
1202 * Options: Network Options. Further control over network connections. | |
1203 * Features: Network Feature Testing. | |
1204 Determining which network features work on | |
1205 the machine you are using. | |
1206 | |
1207 Packing and Unpacking Byte Arrays | |
1208 | |
1209 * Bindat Spec:: Describing data layout. | |
1210 * Bindat Functions:: Doing the unpacking and packing. | |
1211 * Bindat Examples:: Samples of what bindat.el can do for you! | |
1004 | 1212 |
1005 Emacs Display | 1213 Emacs Display |
1006 | 1214 |
1007 * Refresh Screen:: Clearing the screen and redrawing everything on it. | 1215 * Refresh Screen:: Clearing the screen and redrawing everything on it. |
1008 * Forcing Redisplay:: Forcing redisplay. | 1216 * Forcing Redisplay:: Forcing redisplay. |
1027 * Usual Display:: The usual conventions for displaying nonprinting chars. | 1235 * Usual Display:: The usual conventions for displaying nonprinting chars. |
1028 * Display Tables:: How to specify other conventions. | 1236 * Display Tables:: How to specify other conventions. |
1029 * Beeping:: Audible signal to the user. | 1237 * Beeping:: Audible signal to the user. |
1030 * Window Systems:: Which window system is being used. | 1238 * Window Systems:: Which window system is being used. |
1031 | 1239 |
1240 The Echo Area | |
1241 | |
1242 * Displaying Messages:: Explicitly displaying text in the echo area. | |
1243 * Progress:: Informing user about progress of a long operation. | |
1244 * Logging Messages:: Echo area messages are logged for the user. | |
1245 * Echo Area Customization:: Controlling the echo area. | |
1246 | |
1247 Reporting Warnings | |
1248 | |
1249 * Warning Basics:: Warnings concepts and functions to report them. | |
1250 * Warning Variables:: Variables programs bind to customize their warnings. | |
1251 * Warning Options:: Variables users set to control display of warnings. | |
1252 | |
1253 Overlays | |
1254 | |
1255 * Managing Overlays:: Creating and moving overlays. | |
1256 * Overlay Properties:: How to read and set properties. | |
1257 What properties do to the screen display. | |
1258 * Finding Overlays:: Searching for overlays. | |
1259 | |
1260 Faces | |
1261 | |
1262 * Defining Faces:: How to define a face with @code{defface}. | |
1263 * Face Attributes:: What is in a face? | |
1264 * Attribute Functions:: Functions to examine and set face attributes. | |
1265 * Displaying Faces:: How Emacs combines the faces specified for | |
1266 a character. | |
1267 * Font Selection:: Finding the best available font for a face. | |
1268 * Face Functions:: How to define and examine faces. | |
1269 * Auto Faces:: Hook for automatic face assignment. | |
1270 * Font Lookup:: Looking up the names of available fonts | |
1271 and information about them. | |
1272 * Fontsets:: A fontset is a collection of fonts | |
1273 that handle a range of character sets. | |
1274 | |
1275 Fringes | |
1276 | |
1277 * Fringe Size/Pos:: Specifying where to put the window fringes. | |
1278 * Fringe Indicators:: Displaying indicator icons in the window fringes. | |
1279 * Fringe Cursors:: Displaying cursors in the right fringe. | |
1280 * Fringe Bitmaps:: Specifying bitmaps for fringe indicators. | |
1281 * Customizing Bitmaps:: Specifying your own bitmaps to use in the fringes. | |
1282 * Overlay Arrow:: Display of an arrow to indicate position. | |
1283 | |
1284 The @code{display} Property | |
1285 | |
1286 * Specified Space:: Displaying one space with a specified width. | |
1287 * Pixel Specification:: Specifying space width or height in pixels. | |
1288 * Other Display Specs:: Displaying an image; magnifying text; moving it | |
1289 up or down on the page; adjusting the width | |
1290 of spaces within text. | |
1291 * Display Margins:: Displaying text or images to the side of | |
1292 the main text. | |
1293 | |
1294 Images | |
1295 | |
1296 * Image Descriptors:: How to specify an image for use in @code{:display}. | |
1297 * XBM Images:: Special features for XBM format. | |
1298 * XPM Images:: Special features for XPM format. | |
1299 * GIF Images:: Special features for GIF format. | |
1300 * Postscript Images:: Special features for Postscript format. | |
1301 * Other Image Types:: Various other formats are supported. | |
1302 * Defining Images:: Convenient ways to define an image for later use. | |
1303 * Showing Images:: Convenient ways to display an image once | |
1304 it is defined. | |
1305 * Image Cache:: Internal mechanisms of image display. | |
1306 | |
1307 Buttons | |
1308 | |
1309 * Button Properties:: Button properties with special meanings. | |
1310 * Button Types:: Defining common properties for classes of buttons. | |
1311 * Making Buttons:: Adding buttons to Emacs buffers. | |
1312 * Manipulating Buttons:: Getting and setting properties of buttons. | |
1313 * Button Buffer Commands:: Buffer-wide commands and bindings for buttons. | |
1314 | |
1315 Abstract Display | |
1316 | |
1317 * Abstract Display Functions:: Functions in the Ewoc package. | |
1318 * Abstract Display Example:: Example of using Ewoc. | |
1319 | |
1320 Display Tables | |
1321 | |
1322 * Display Table Format:: What a display table consists of. | |
1323 * Active Display Table:: How Emacs selects a display table to use. | |
1324 * Glyphs:: How to define a glyph, and what glyphs mean. | |
1325 | |
1032 Operating System Interface | 1326 Operating System Interface |
1033 | 1327 |
1034 * Starting Up:: Customizing Emacs start-up processing. | 1328 * Starting Up:: Customizing Emacs start-up processing. |
1035 * Getting Out:: How exiting works (permanent or temporary). | 1329 * Getting Out:: How exiting works (permanent or temporary). |
1036 * System Environment:: Distinguish the name and kind of system. | 1330 * System Environment:: Distinguish the name and kind of system. |
1043 * Processor Run Time:: Getting the run time used by Emacs. | 1337 * Processor Run Time:: Getting the run time used by Emacs. |
1044 * Time Calculations:: Adding, subtracting, comparing times, etc. | 1338 * Time Calculations:: Adding, subtracting, comparing times, etc. |
1045 * Timers:: Setting a timer to call a function at a certain time. | 1339 * Timers:: Setting a timer to call a function at a certain time. |
1046 * Idle Timers:: Setting a timer to call a function when Emacs has | 1340 * Idle Timers:: Setting a timer to call a function when Emacs has |
1047 been idle for a certain length of time. | 1341 been idle for a certain length of time. |
1048 * Terminal Input:: Accessing and recordingo terminal input. | 1342 * Terminal Input:: Accessing and recording terminal input. |
1049 * Terminal Output:: Controlling and recording terminal output. | 1343 * Terminal Output:: Controlling and recording terminal output. |
1050 * Sound Output:: Playing sounds on the computer's speaker. | 1344 * Sound Output:: Playing sounds on the computer's speaker. |
1051 * X11 Keysyms:: Operating on key symbols for X Windows | 1345 * X11 Keysyms:: Operating on key symbols for X Windows |
1052 * Batch Mode:: Running Emacs without terminal interaction. | 1346 * Batch Mode:: Running Emacs without terminal interaction. |
1053 * Session Management:: Saving and restoring state with X Session Management. | 1347 * Session Management:: Saving and restoring state with X Session Management. |
1055 Starting Up Emacs | 1349 Starting Up Emacs |
1056 | 1350 |
1057 * Startup Summary:: Sequence of actions Emacs performs at start-up. | 1351 * Startup Summary:: Sequence of actions Emacs performs at start-up. |
1058 * Init File:: Details on reading the init file (@file{.emacs}). | 1352 * Init File:: Details on reading the init file (@file{.emacs}). |
1059 * Terminal-Specific:: How the terminal-specific Lisp file is read. | 1353 * Terminal-Specific:: How the terminal-specific Lisp file is read. |
1060 * Command-Line Arguments:: How command line arguments are processed, | 1354 * Command-Line Arguments:: How command-line arguments are processed, |
1061 and how you can customize them. | 1355 and how you can customize them. |
1062 | 1356 |
1063 Getting out of Emacs | 1357 Getting Out of Emacs |
1064 | 1358 |
1065 * Killing Emacs:: Exiting Emacs irreversibly. | 1359 * Killing Emacs:: Exiting Emacs irreversibly. |
1066 * Suspending Emacs:: Exiting Emacs reversibly. | 1360 * Suspending Emacs:: Exiting Emacs reversibly. |
1067 | 1361 |
1362 Terminal Input | |
1363 | |
1364 * Input Modes:: Options for how input is processed. | |
1365 * Recording Input:: Saving histories of recent or all input events. | |
1366 | |
1068 Tips and Conventions | 1367 Tips and Conventions |
1069 | 1368 |
1070 * Coding Conventions:: Conventions for clean and robust programs. | 1369 * Coding Conventions:: Conventions for clean and robust programs. |
1071 * Key Binding Conventions:: Which keys should be bound by which programs. | 1370 * Key Binding Conventions:: Which keys should be bound by which programs. |
1072 * Programming Tips:: Making Emacs code fit smoothly in Emacs. | 1371 * Programming Tips:: Making Emacs code fit smoothly in Emacs. |
1073 * Compilation Tips:: Making compiled code run fast. | 1372 * Compilation Tips:: Making compiled code run fast. |
1074 * Warning Tips:: Turning off compiler warnings. | 1373 * Warning Tips:: Turning off compiler warnings. |
1075 * Documentation Tips:: Writing readable documentation strings. | 1374 * Documentation Tips:: Writing readable documentation strings. |
1076 * Comment Tips:: Conventions for writing comments. | 1375 * Comment Tips:: Conventions for writing comments. |
1077 * Library Headers:: Standard headers for library packages. | 1376 * Library Headers:: Standard headers for library packages. |
1078 | 1377 |
1079 GNU Emacs Internals | 1378 GNU Emacs Internals |
1080 | 1379 |
1081 * Building Emacs:: How to preload Lisp libraries into Emacs. | 1380 * Building Emacs:: How the dumped Emacs is made. |
1082 * Pure Storage:: A kludge to make preloaded Lisp functions sharable. | 1381 * Pure Storage:: A kludge to make preloaded Lisp functions sharable. |
1083 * Garbage Collection:: Reclaiming space for Lisp objects no longer used. | 1382 * Garbage Collection:: Reclaiming space for Lisp objects no longer used. |
1084 * Memory Usage:: Info about total size of Lisp objects made so far. | 1383 * Memory Usage:: Info about total size of Lisp objects made so far. |
1085 * Writing Emacs Primitives:: Writing C code for Emacs. | 1384 * Writing Emacs Primitives:: Writing C code for Emacs. |
1086 * Object Internals:: Data formats of buffers, windows, processes. | 1385 * Object Internals:: Data formats of buffers, windows, processes. |
1088 Object Internals | 1387 Object Internals |
1089 | 1388 |
1090 * Buffer Internals:: Components of a buffer structure. | 1389 * Buffer Internals:: Components of a buffer structure. |
1091 * Window Internals:: Components of a window structure. | 1390 * Window Internals:: Components of a window structure. |
1092 * Process Internals:: Components of a process structure. | 1391 * Process Internals:: Components of a process structure. |
1392 @end detailmenu | |
1093 @end menu | 1393 @end menu |
1094 | 1394 |
1095 @include intro.texi | 1395 @include intro.texi |
1096 @include objects.texi | 1396 @include objects.texi |
1097 @include numbers.texi | 1397 @include numbers.texi |