| 2. Lisp Data Types |
|
Data types of objects in Emacs Lisp. |
| 3. Numbers |
|
Numbers and arithmetic functions. |
| 4. Strings and Characters |
|
Strings, and functions that work on them. |
| 5. Lists |
|
Lists, cons cells, and related functions. |
| 6. Sequences, Arrays, and Vectors |
|
Lists, strings and vectors are called sequences. Certain functions act on any kind of sequence. The description of vectors is here as well. |
| 7. Hash Tables |
|
Very fast lookup-tables. |
| 8. Symbols |
|
Symbols represent names, uniquely. |
| A. Emacs 21 Antinews |
|
Info for users downgrading to Emacs 21. |
| B. GNU Free Documentation License |
|
The license for this documentation |
| C. GNU General Public License |
|
Conditions for copying and changing GNU Emacs. |
| D. Tips and Conventions |
|
Advice and coding conventions for Emacs Lisp. |
| E. GNU Emacs Internals |
|
Building and dumping Emacs; internal data structures. |
| F. Standard Errors |
|
List of all error symbols. |
| G. Buffer-Local Variables |
|
List of variables buffer-local in all buffers. |
| H. Standard Keymaps |
|
List of standard keymaps. |
| I. Standard Hooks |
|
List of standard hook variables. |
| 1.3.1 Some Terms |
|
Explanation of terms we use in this manual. |
1.3.2 nil and t
|
|
How the symbols nil and t are used. |
| 1.3.3 Evaluation Notation |
|
The format we use for examples of evaluation. |
| 1.3.4 Printing Notation |
|
The format we use for examples that print output. |
| 1.3.5 Error Messages |
|
The format we use for examples of errors. |
| 1.3.6 Buffer Text Notation |
|
The format we use for buffer contents in examples. |
| 1.3.7 Format of Descriptions |
|
Notation for describing functions, variables, etc. |
| 2.3.1 Integer Type |
|
Numbers without fractional parts. |
| 2.3.2 Floating Point Type |
|
Numbers with fractional parts and with a large range. |
| 2.3.3 Character Type |
|
The representation of letters, numbers and control characters. |
| 2.3.4 Symbol Type |
|
A multi-use object that refers to a function, variable, property list, or itself. |
| 2.3.5 Sequence Types |
|
Both lists and arrays are classified as sequences. |
| 2.3.6 Cons Cell and List Types |
|
Cons cells, and lists (which are made from cons cells). |
| 2.3.7 Array Type |
|
Arrays include strings and vectors. |
| 2.3.8 String Type |
|
An (efficient) array of characters. |
| 2.3.9 Vector Type |
|
One-dimensional arrays. |
| 2.3.10 Char-Table Type |
|
One-dimensional sparse arrays indexed by characters. |
| 2.3.11 Bool-Vector Type |
|
One-dimensional arrays of t or nil. |
| 2.3.12 Hash Table Type |
|
Super-fast lookup tables. |
| 2.3.13 Function Type |
|
A piece of executable code you can call from elsewhere. |
| 2.3.14 Macro Type |
|
A method of expanding an expression into another expression, more fundamental but less pretty. |
| 2.3.15 Primitive Function Type |
|
A function written in C, callable from Lisp. |
| 2.3.16 Byte-Code Function Type |
|
A function written in Lisp, then compiled. |
| 2.3.17 Autoload Type |
|
A type used for automatically loading seldom-used functions. |
| 2.3.3.1 Basic Char Syntax |
|
Syntax for regular characters. |
| 2.3.3.2 General Escape Syntax |
|
How to specify characters by their codes. |
| 2.3.3.3 Control-Character Syntax |
|
Syntax for control characters. |
| 2.3.3.4 Meta-Character Syntax |
|
Syntax for meta-characters. |
| 2.3.3.5 Other Character Modifier Bits |
|
Syntax for hyper-, super-, and alt-characters. |
| 2.4.1 Buffer Type |
|
The basic object of editing. |
| 2.4.2 Marker Type |
|
A position in a buffer. |
| 2.4.3 Window Type |
|
What makes buffers visible. |
| 2.4.4 Frame Type |
|
Windows subdivide frames. |
| 2.4.5 Window Configuration Type |
|
Recording the way a frame is subdivided. |
| 2.4.6 Frame Configuration Type |
|
Recording the status of all frames. |
| 2.4.7 Process Type |
|
A process running on the underlying OS. |
| 2.4.8 Stream Type |
|
Receive or send characters. |
| 2.4.9 Keymap Type |
|
What function a keystroke invokes. |
| 2.4.10 Overlay Type |
|
How an overlay is represented. |
| 3.1 Integer Basics |
|
Representation and range of integers. |
| 3.2 Floating Point Basics |
|
Representation and range of floating point. |
| 3.3 Type Predicates for Numbers |
|
Testing for numbers. |
| 3.4 Comparison of Numbers |
|
Equality and inequality predicates. |
| 3.5 Numeric Conversions |
|
Converting float to integer and vice versa. |
| 3.6 Arithmetic Operations |
|
How to add, subtract, multiply and divide. |
| 3.7 Rounding Operations |
|
Explicitly rounding floating point numbers. |
| 3.8 Bitwise Operations on Integers |
|
Logical and, or, not, shifting. |
| 3.9 Standard Mathematical Functions |
|
Trig, exponential and logarithmic functions. |
| 3.10 Random Numbers |
|
Obtaining random integers, predictable or not. |
| 4.1 String and Character Basics |
|
Basic properties of strings and characters. |
| 4.2 The Predicates for Strings |
|
Testing whether an object is a string or char. |
| 4.3 Creating Strings |
|
Functions to allocate new strings. |
| 4.4 Modifying Strings |
|
Altering the contents of an existing string. |
| 4.5 Comparison of Characters and Strings |
|
Comparing characters or strings. |
| 4.6 Conversion of Characters and Strings |
|
Converting characters to strings and vice versa. |
| 4.7 Formatting Strings |
|
format: Emacs's analogue of printf. |
| 4.8 Case Conversion in Lisp |
|
Case conversion functions. |
| 4.9 The Case Table |
|
Customizing case conversion. |
| 5.1 Lists and Cons Cells |
|
How lists are made out of cons cells. |
| 5.2 Predicates on Lists |
|
Is this object a list? Comparing two lists. |
| 5.3 Accessing Elements of Lists |
|
Extracting the pieces of a list. |
| 5.4 Building Cons Cells and Lists |
|
Creating list structure. |
| 5.5 Modifying List Variables |
|
Modifying lists stored in variables. |
| 5.6 Modifying Existing List Structure |
|
Storing new pieces into an existing list. |
| 5.7 Using Lists as Sets |
|
A list can represent a finite mathematical set. |
| 5.8 Association Lists |
|
A list can represent a finite relation or mapping. |
| 5.9 Managing a Fixed-Size Ring of Objects |
|
Managing a fixed-size ring of objects. |
| 6.1 Sequences |
|
Functions that accept any kind of sequence. |
| 6.2 Arrays |
|
Characteristics of arrays in Emacs Lisp. |
| 6.3 Functions that Operate on Arrays |
|
Functions specifically for arrays. |
| 6.4 Vectors |
|
Special characteristics of Emacs Lisp vectors. |
| 6.5 Functions for Vectors |
|
Functions specifically for vectors. |
| 6.6 Char-Tables |
|
How to work with char-tables. |
| 6.7 Bool-vectors |
|
How to work with bool-vectors. |
| 9.2.1 Self-Evaluating Forms |
|
Forms that evaluate to themselves. |
| 9.2.2 Symbol Forms |
|
Symbols evaluate as variables. |
| 9.2.3 Classification of List Forms |
|
How to distinguish various sorts of list forms. |
| 9.2.4 Symbol Function Indirection |
|
When a symbol appears as the car of a list, we find the real function via the symbol. |
| 9.2.5 Evaluation of Function Forms |
|
Forms that call functions. |
| 9.2.6 Lisp Macro Evaluation |
|
Forms that call macros. |
| 9.2.7 Special Forms |
|
"Special forms" are idiosyncratic primitives, most of them extremely important. |
| 9.2.8 Autoloading |
|
Functions set up to load files containing their real definitions. |
| 11.1 Global Variables |
|
Variable values that exist permanently, everywhere. |
| 11.2 Variables that Never Change |
|
Certain "variables" have values that never change. |
| 11.3 Local Variables |
|
Variable values that exist only temporarily. |
| 11.4 When a Variable is "Void" |
|
Symbols that lack values. |
| 11.5 Defining Global Variables |
|
A definition says a symbol is used as a variable. |
| 11.6 Tips for Defining Variables Robustly |
|
Things you should think about when you define a variable. |
| 11.7 Accessing Variable Values |
|
Examining values of variables whose names are known only at run time. |
| 11.8 How to Alter a Variable Value |
|
Storing new values in variables. |
| 11.9 Scoping Rules for Variable Bindings |
|
How Lisp chooses among local and global values. |
| 11.10 Buffer-Local Variables |
|
Variable values in effect only in one buffer. |
| 11.11 Possible Future Local Variables |
|
New kinds of local values we might add some day. |
| 11.12 File Local Variables |
|
Handling local variable lists in files. |
| 11.13 Variable Aliases |
|
Variables that are aliases for other variables. |
| 11.14 Variables with Restricted Values |
|
Non-constant variables whose value can |
| 12.1 What Is a Function? |
|
Lisp functions vs primitives; terminology. |
| 12.2 Lambda Expressions |
|
How functions are expressed as Lisp objects. |
| 12.3 Naming a Function |
|
A symbol can serve as the name of a function. |
| 12.4 Defining Functions |
|
Lisp expressions for defining functions. |
| 12.5 Calling Functions |
|
How to use an existing function. |
| 12.6 Mapping Functions |
|
Applying a function to each element of a list, etc. |
| 12.7 Anonymous Functions |
|
Lambda-expressions are functions with no names. |
| 12.8 Accessing Function Cell Contents |
|
Accessing or setting the function definition of a symbol. |
| 12.9 Declaring Functions Obsolete |
|
Declaring functions obsolete. |
| 12.10 Inline Functions |
|
Defining functions that the compiler will open code. |
| 12.12 Determining whether a Function is Safe to Call |
|
Determining whether a function is safe to call. |
| 12.13 Other Topics Related to Functions |
|
Cross-references to specific Lisp primitives that have a special bearing on how functions work. |
| 13.1 A Simple Example of a Macro |
|
A basic example. |
| 13.2 Expansion of a Macro Call |
|
How, when and why macros are expanded. |
| 13.3 Macros and Byte Compilation |
|
How macros are expanded by the compiler. |
| 13.4 Defining Macros |
|
How to write a macro definition. |
| 13.5 Backquote |
|
Easier construction of list structure. |
| 13.6 Common Problems Using Macros |
|
Don't evaluate the macro arguments too many times. Don't hide the user's variables. |
| 13.7 Indenting Macros |
|
Specifying how to indent macro calls. |
| 13.6.1 Wrong Time |
|
Do the work in the expansion, not in the macro. |
| 13.6.2 Evaluating Macro Arguments Repeatedly |
|
The expansion should evaluate each macro arg once. |
| 13.6.3 Local Variables in Macro Expansions |
|
Local variable bindings in the expansion require special care. |
| 13.6.4 Evaluating Macro Arguments in Expansion |
|
Don't evaluate them; put them in the expansion. |
| 13.6.5 How Many Times is the Macro Expanded? |
|
Avoid depending on how many times expansion is done. |
| 15.1 How Programs Do Loading |
|
The load function and others. |
| 15.2 Load Suffixes |
|
Details about the suffixes that load tries. |
| 15.3 Library Search |
|
Finding a library to load. |
| 15.4 Loading Non-ASCII Characters |
|
Non-ASCII characters in Emacs Lisp files. |
| 15.5 Autoload |
|
Setting up a function to autoload. |
| 15.6 Repeated Loading |
|
Precautions about loading a file twice. |
| 15.7 Features |
|
Loading a library if it isn't already loaded. |
| 15.8 Which File Defined a Certain Symbol |
|
Finding which file defined a certain symbol. |
| 15.9 Unloading |
|
How to "unload" a library that was loaded. |
| 15.10 Hooks for Loading |
|
Providing code to be run when particular libraries are loaded. |
| 16.1 Performance of Byte-Compiled Code |
|
An example of speedup from byte compilation. |
| 16.2 The Compilation Functions |
|
Byte compilation functions. |
| 16.3 Documentation Strings and Compilation |
|
Dynamic loading of documentation strings. |
| 16.4 Dynamic Loading of Individual Functions |
|
Dynamic loading of individual functions. |
| 16.5 Evaluation During Compilation |
|
Code to be evaluated when you compile. |
| 16.6 Compiler Errors |
|
Handling compiler error messages. |
| 16.7 Byte-Code Function Objects |
|
The data type used for byte-compiled functions. |
| 16.8 Disassembled Byte-Code |
|
Disassembling byte-code; how to read byte-code. |
| 17.1 A Simple Advice Example |
|
A simple example to explain the basics of advice. |
| 17.2 Defining Advice |
|
Detailed description of defadvice. |
| 17.3 Around-Advice |
|
Wrapping advice around a function's definition. |
| 17.4 Computed Advice |
|
...is to defadvice as fset is to defun. |
| 17.5 Activation of Advice |
|
Advice doesn't do anything until you activate it. |
| 17.6 Enabling and Disabling Advice |
|
You can enable or disable each piece of advice. |
| 17.7 Preactivation |
|
Preactivation is a way of speeding up the loading of compiled advice. |
| 17.8 Argument Access in Advice |
|
How advice can access the function's arguments. |
| 17.9 Advising Primitives |
|
Accessing arguments when advising a primitive. |
| 17.10 The Combined Definition |
|
How advice is implemented. |
| 18.1.1 Entering the Debugger on an Error |
|
Entering the debugger when an error happens. |
| 18.1.2 Debugging Infinite Loops |
|
Stopping and debugging a program that doesn't exit. |
| 18.1.3 Entering the Debugger on a Function Call |
|
Entering it when a certain function is called. |
| 18.1.4 Explicit Entry to the Debugger |
|
Entering it at a certain point in the program. |
| 18.1.5 Using the Debugger |
|
What the debugger does; what you see while in it. |
| 18.1.6 Debugger Commands |
|
Commands used while in the debugger. |
| 18.1.7 Invoking the Debugger |
|
How to call the function debug. |
| 18.1.8 Internals of the Debugger |
|
Subroutines of the debugger, and global variables. |
| 18.2.1 Using Edebug |
|
Introduction to use of Edebug. |
| 18.2.2 Instrumenting for Edebug |
|
You must instrument your code in order to debug it with Edebug. |
| 18.2.3 Edebug Execution Modes |
|
Execution modes, stopping more or less often. |
| 18.2.4 Jumping |
|
Commands to jump to a specified place. |
| 18.2.5 Miscellaneous Edebug Commands |
|
Miscellaneous commands. |
| 18.2.6 Breaks |
|
Setting breakpoints to make the program stop. |
| 18.2.7 Trapping Errors |
|
Trapping errors with Edebug. |
| 18.2.8 Edebug Views |
|
Views inside and outside of Edebug. |
| 18.2.9 Evaluation |
|
Evaluating expressions within Edebug. |
| 18.2.10 Evaluation List Buffer |
|
Expressions whose values are displayed each time you enter Edebug. |
| 18.2.11 Printing in Edebug |
|
Customization of printing. |
| 18.2.12 Trace Buffer |
|
How to produce trace output in a buffer. |
| 18.2.13 Coverage Testing |
|
How to test evaluation coverage. |
| 18.2.14 The Outside Context |
|
Data that Edebug saves and restores. |
| 18.2.15 Edebug and Macros |
|
Specifying how to handle macro calls. |
| 18.2.16 Edebug Options |
|
Option variables for customizing Edebug. |
| 19.1 Introduction to Reading and Printing |
|
Overview of streams, reading and printing. |
| 19.2 Input Streams |
|
Various data types that can be used as input streams. |
| 19.3 Input Functions |
|
Functions to read Lisp objects from text. |
| 19.4 Output Streams |
|
Various data types that can be used as output streams. |
| 19.5 Output Functions |
|
Functions to print Lisp objects as text. |
| 19.6 Variables Affecting Output |
|
Variables that control what the printing functions do. |
| 20.1 Introduction to Minibuffers |
|
Basic information about minibuffers. |
| 20.2 Reading Text Strings with the Minibuffer |
|
How to read a straight text string. |
| 20.3 Reading Lisp Objects with the Minibuffer |
|
How to read a Lisp object or expression. |
| 20.4 Minibuffer History |
|
Recording previous minibuffer inputs so the user can reuse them. |
| 20.5 Initial Input |
|
Specifying initial contents for the minibuffer. |
| 20.6 Completion |
|
How to invoke and customize completion. |
| 20.7 Yes-or-No Queries |
|
Asking a question with a simple answer. |
| 20.8 Asking Multiple Y-or-N Questions |
|
Asking a series of similar questions. |
| 20.9 Reading a Password |
|
Reading a password from the terminal. |
| 20.10 Minibuffer Commands |
|
Commands used as key bindings in minibuffers. |
| 20.12 Minibuffer Contents |
|
How such commands access the minibuffer text. |
| 20.11 Minibuffer Windows |
|
Operating on the special minibuffer windows. |
| 20.13 Recursive Minibuffers |
|
Whether recursive entry to minibuffer is allowed. |
| 20.14 Minibuffer Miscellany |
|
Various customization hooks and variables. |
| 21.1 Command Loop Overview |
|
How the command loop reads commands. |
| 21.2 Defining Commands |
|
Specifying how a function should read arguments. |
| 21.3 Interactive Call |
|
Calling a command, so that it will read arguments. |
| 21.4 Distinguish Interactive Calls |
|
Making a command distinguish interactive calls. |
| 21.5 Information from the Command Loop |
|
Variables set by the command loop for you to examine. |
| 21.6 Adjusting Point After Commands |
|
Adjustment of point after a command. |
| 21.7 Input Events |
|
What input looks like when you read it. |
| 21.8 Reading Input |
|
How to read input events from the keyboard or mouse. |
| 21.9 Special Events |
|
Events processed immediately and individually. |
| 21.10 Waiting for Elapsed Time or Input |
|
Waiting for user input or elapsed time. |
| 21.11 Quitting |
|
How C-g works. How to catch or defer quitting. |
| 21.12 Prefix Command Arguments |
|
How the commands to set prefix args work. |
| 21.13 Recursive Editing |
|
Entering a recursive edit, and why you usually shouldn't. |
| 21.14 Disabling Commands |
|
How the command loop handles disabled commands. |
| 21.15 Command History |
|
How the command history is set up, and how accessed. |
| 21.16 Keyboard Macros |
|
How keyboard macros are implemented. |
| 21.7.1 Keyboard Events |
|
Ordinary characters--keys with symbols on them. |
| 21.7.2 Function Keys |
|
Function keys--keys with names, not symbols. |
| 21.7.3 Mouse Events |
|
Overview of mouse events. |
| 21.7.4 Click Events |
|
Pushing and releasing a mouse button. |
| 21.7.5 Drag Events |
|
Moving the mouse before releasing the button. |
| 21.7.6 Button-Down Events |
|
A button was pushed and not yet released. |
| 21.7.7 Repeat Events |
|
Double and triple click (or drag, or down). |
| 21.7.8 Motion Events |
|
Just moving the mouse, not pushing a button. |
| 21.7.9 Focus Events |
|
Moving the mouse between frames. |
| 21.7.10 Miscellaneous System Events |
|
Other events the system can generate. |
| 21.7.11 Event Examples |
|
Examples of the lists for mouse events. |
| 21.7.12 Classifying Events |
|
Finding the modifier keys in an event symbol. |
| 21.7.13 Accessing Events |
|
Functions to extract info from events. |
| 21.7.14 Putting Keyboard Events in Strings |
|
Special considerations for putting keyboard character events in a string. |
| 21.8.1 Key Sequence Input |
|
How to read one key sequence. |
| 21.8.2 Reading One Event |
|
How to read just one event. |
| 21.8.3 Modifying and Translating Input Events |
|
How Emacs modifies events as they are read. |
| 21.8.4 Invoking the Input Method |
|
How reading an event uses the input method. |
| 21.8.5 Quoted Character Input |
|
Asking the user to specify a character. |
| 21.8.6 Miscellaneous Event Input Features |
|
How to reread or throw away input events. |
| 22.1 Key Sequences |
|
Key sequences as Lisp objects. |
| 22.2 Keymap Basics |
|
Basic concepts of keymaps. |
| 22.3 Format of Keymaps |
|
What a keymap looks like as a Lisp object. |
| 22.4 Creating Keymaps |
|
Functions to create and copy keymaps. |
| 22.5 Inheritance and Keymaps |
|
How one keymap can inherit the bindings of another keymap. |
| 22.6 Prefix Keys |
|
Defining a key with a keymap as its definition. |
| 22.7 Active Keymaps |
|
How Emacs searches the active keymaps for a key binding. |
| 22.8 Searching the Active Keymaps |
|
A pseudo-Lisp summary of searching active maps. |
| 22.9 Controlling the Active Keymaps |
|
Each buffer has a local keymap to override the standard (global) bindings. A minor mode can also override them. |
| 22.10 Key Lookup |
|
How extracting elements from keymaps works. |
| 22.11 Functions for Key Lookup |
|
How to request key lookup. |
| 22.12 Changing Key Bindings |
|
Redefining a key in a keymap. |
| 22.13 Remapping Commands |
|
A keymap can translate one command to another. |
| 22.14 Keymaps for Translating Sequences of Events |
|
Keymaps for translating sequences of events. |
| 22.15 Commands for Binding Keys |
|
Interactive interfaces for redefining keys. |
| 22.16 Scanning Keymaps |
|
Looking through all keymaps, for printing help. |
| 22.17 Menu Keymaps |
|
A keymap can define a menu for X or for use from the terminal. |
| H. Standard Keymaps |
|
List of standard keymaps. |
| 22.17.1.1 Simple Menu Items |
|
A simple kind of menu key binding, limited in capabilities. |
| 22.17.1.2 Extended Menu Items |
|
More powerful menu item definitions let you specify keywords to enable various features. |
| 22.17.1.3 Menu Separators |
|
Drawing a horizontal line through a menu. |
| 22.17.1.4 Alias Menu Items |
|
Using command aliases in menu items. |
| 23.2.1 Major Mode Basics |
|
|
| 23.2.2 Major Mode Conventions |
|
Coding conventions for keymaps, etc. |
| 23.2.8 Major Mode Examples |
|
Text mode and Lisp modes. |
| 23.2.3 How Emacs Chooses a Major Mode |
|
How Emacs chooses the major mode automatically. |
| 23.2.4 Getting Help about a Major Mode |
|
Finding out how to use a mode. |
| 23.2.5 Defining Derived Modes |
|
Defining a new major mode based on another major mode. |
| 23.2.6 Generic Modes |
|
Defining a simple major mode that supports comment syntax and Font Lock mode. |
| 23.2.7 Mode Hooks |
|
Hooks run at the end of major mode functions. |
| 23.4.1 Mode Line Basics |
|
|
| 23.4.2 The Data Structure of the Mode Line |
|
The data structure that controls the mode line. |
| 23.4.4 Variables Used in the Mode Line |
|
Variables used in that data structure. |
23.4.5 %-Constructs in the Mode Line |
|
Putting information into a mode line. |
| 23.4.6 Properties in the Mode Line |
|
Using text properties in the mode line. |
| 23.4.7 Window Header Lines |
|
Like a mode line, but at the top. |
| 23.4.8 Emulating Mode-Line Formatting |
|
Formatting text as the mode line would. |
| 23.6.1 Font Lock Basics |
|
Overview of customizing Font Lock. |
| 23.6.2 Search-based Fontification |
|
Fontification based on regexps. |
| 23.6.3 Customizing Search-Based Fontification |
|
Customizing search-based fontification. |
| 23.6.4 Other Font Lock Variables |
|
Additional customization facilities. |
| 23.6.5 Levels of Font Lock |
|
Each mode can define alternative levels so that the user can select more or less. |
| 23.6.6 Precalculated Fontification |
|
How Lisp programs that produce the buffer contents can also specify how to fontify it. |
| 23.6.7 Faces for Font Lock |
|
Special faces specifically for Font Lock. |
| 23.6.8 Syntactic Font Lock |
|
Fontification based on syntax tables. |
| 23.6.9 Setting Syntax Properties |
|
Defining character syntax based on context using the Font Lock mechanism. |
| 23.6.10 Multiline Font Lock Constructs |
|
How to coerce Font Lock into properly highlighting multiline constructs. |
| 26.1.1 Making Backup Files |
|
How Emacs makes backup files, and when. |
| 26.1.2 Backup by Renaming or by Copying? |
|
Two alternatives: renaming the old file or copying it. |
| 26.1.3 Making and Deleting Numbered Backup Files |
|
Keeping multiple backups for each source file. |
| 26.1.4 Naming Backup Files |
|
How backup file names are computed; customization. |
| 28.1 Basic Concepts of Emacs Windows |
|
Basic information on using windows. |
| 28.2 Splitting Windows |
|
Splitting one window into two windows. |
| 28.3 Deleting Windows |
|
Deleting a window gives its space to other windows. |
| 28.4 Selecting Windows |
|
The selected window is the one that you edit in. |
| 28.5 Cyclic Ordering of Windows |
|
Moving around the existing windows. |
| 28.6 Buffers and Windows |
|
Each window displays the contents of a buffer. |
| 28.7 Displaying Buffers in Windows |
|
Higher-level functions for displaying a buffer and choosing a window for it. |
| 28.8 Choosing a Window for Display |
|
How to choose a window for displaying a buffer. |
| 28.9 Windows and Point |
|
Each window has its own location of point. |
| 28.10 The Window Start Position |
|
The display-start position controls which text is on-screen in the window. |
| 28.11 Textual Scrolling |
|
Moving text up and down through the window. |
| 28.12 Vertical Fractional Scrolling |
|
Moving the contents up and down on the window. |
| 28.13 Horizontal Scrolling |
|
Moving the contents sideways on the window. |
| 28.14 The Size of a Window |
|
Accessing the size of a window. |
| 28.15 Changing the Size of a Window |
|
Changing the size of a window. |
| 28.16 Coordinates and Windows |
|
Converting coordinates to windows. |
| 28.17 The Window Tree |
|
The layout and sizes of all windows in a frame. |
| 28.18 Window Configurations |
|
Saving and restoring the state of the screen. |
| 28.19 Hooks for Window Scrolling and Changes |
|
Hooks for scrolling, window size changes, redisplay going past a certain point, or window configuration changes. |
| 29.1 Creating Frames |
|
Creating additional frames. |
| 29.2 Multiple Displays |
|
Creating frames on other displays. |
| 29.3 Frame Parameters |
|
Controlling frame size, position, font, etc. |
| 29.4 Frame Titles |
|
Automatic updating of frame titles. |
| 29.5 Deleting Frames |
|
Frames last until explicitly deleted. |
| 29.6 Finding All Frames |
|
How to examine all existing frames. |
| 29.7 Frames and Windows |
|
A frame contains windows; display of text always works through windows. |
| 29.8 Minibuffers and Frames |
|
How a frame finds the minibuffer to use. |
| 29.9 Input Focus |
|
Specifying the selected frame. |
| 29.10 Visibility of Frames |
|
Frames may be visible or invisible, or icons. |
| 29.11 Raising and Lowering Frames |
|
Raising a frame makes it hide other windows; lowering it puts it underneath the others. |
| 29.12 Frame Configurations |
|
Saving the state of all frames. |
| 29.13 Mouse Tracking |
|
Getting events that say when the mouse moves. |
| 29.14 Mouse Position |
|
Asking where the mouse is, or moving it. |
| 29.15 Pop-Up Menus |
|
Displaying a menu for the user to select from. |
| 29.16 Dialog Boxes |
|
Displaying a box to ask yes or no. |
| 29.17 Pointer Shape |
|
Specifying the shape of the mouse pointer. |
| 29.18 Window System Selections |
|
Transferring text to and from other windows. |
| 29.19 Drag and Drop |
|
Internals of Drag-and-Drop implementation. |
| 29.20 Color Names |
|
Getting the definitions of color names. |
| 29.21 Text Terminal Colors |
|
Defining colors for text-only terminals. |
| 29.22 X Resources |
|
Getting resource values from the server. |
| 29.23 Display Feature Testing |
|
Determining the features of a terminal. |
| 29.3.1 Access to Frame Parameters |
|
How to change a frame's parameters. |
| 29.3.2 Initial Frame Parameters |
|
Specifying frame parameters when you make a frame. |
| 29.3.3 Window Frame Parameters |
|
List of frame parameters for window systems. |
| 29.3.4 Frame Size And Position |
|
Changing the size and position of a frame. |
| 29.3.5 Geometry |
|
Parsing geometry specifications. |
| 29.3.3.1 Basic Parameters |
|
Parameters that are fundamental. |
| 29.3.3.2 Position Parameters |
|
The position of the frame on the screen. |
| 29.3.3.3 Size Parameters |
|
Frame's size. |
| 29.3.3.4 Layout Parameters |
|
Size of parts of the frame, and enabling or disabling some parts. |
| 29.3.3.5 Buffer Parameters |
|
Which buffers have been or should be shown. |
| 29.3.3.6 Window Management Parameters |
|
Communicating with the window manager. |
| 29.3.3.7 Cursor Parameters |
|
Controlling the cursor appearance. |
| 29.3.3.8 Color Parameters |
|
Colors of various parts of the frame. |
| 30.2.1 Motion by Characters |
|
Moving in terms of characters. |
| 30.2.2 Motion by Words |
|
Moving in terms of words. |
| 30.2.3 Motion to an End of the Buffer |
|
Moving to the beginning or end of the buffer. |
| 30.2.4 Motion by Text Lines |
|
Moving in terms of lines of text. |
| 30.2.5 Motion by Screen Lines |
|
Moving in terms of lines as displayed. |
| 30.2.6 Moving over Balanced Expressions |
|
Moving by parsing lists and sexps. |
| 30.2.7 Skipping Characters |
|
Skipping characters belonging to a certain set. |
| 31.1 Overview of Markers |
|
The components of a marker, and how it relocates. |
| 31.2 Predicates on Markers |
|
Testing whether an object is a marker. |
| 31.3 Functions that Create Markers |
|
Making empty markers or markers at certain places. |
| 31.4 Information from Markers |
|
Finding the marker's buffer or character position. |
| 31.5 Marker Insertion Types |
|
Two ways a marker can relocate when you insert where it points. |
| 31.6 Moving Marker Positions |
|
Moving the marker to a new buffer or position. |
| 31.7 The Mark |
|
How "the mark" is implemented with a marker. |
| 31.8 The Region |
|
How to access "the region". |
| 32.1 Examining Text Near Point |
|
Examining text in the vicinity of point. |
| 32.2 Examining Buffer Contents |
|
Examining text in a general fashion. |
| 32.3 Comparing Text |
|
Comparing substrings of buffers. |
| 32.4 Inserting Text |
|
Adding new text to a buffer. |
| 32.5 User-Level Insertion Commands |
|
User-level commands to insert text. |
| 32.6 Deleting Text |
|
Removing text from a buffer. |
| 32.7 User-Level Deletion Commands |
|
User-level commands to delete text. |
| 32.8 The Kill Ring |
|
Where removed text sometimes is saved for later use. |
| 32.9 Undo |
|
Undoing changes to the text of a buffer. |
| 32.10 Maintaining Undo Lists |
|
How to enable and disable undo information. How to control how much information is kept. |
| 32.11 Filling |
|
Functions for explicit filling. |
| 32.12 Margins for Filling |
|
How to specify margins for filling commands. |
| 32.13 Adaptive Fill Mode |
|
Adaptive Fill mode chooses a fill prefix from context. |
| 32.14 Auto Filling |
|
How auto-fill mode is implemented to break lines. |
| 32.15 Sorting Text |
|
Functions for sorting parts of the buffer. |
| 32.16 Counting Columns |
|
Computing horizontal positions, and using them. |
| 32.17 Indentation |
|
Functions to insert or adjust indentation. |
| 32.18 Case Changes |
|
Case conversion of parts of the buffer. |
| 32.19 Text Properties |
|
Assigning Lisp property lists to text characters. |
| 32.20 Substituting for a Character Code |
|
Replacing a given character wherever it appears. |
| 32.22 Transposition of Text |
|
Swapping two portions of a buffer. |
| 32.21 Registers |
|
How registers are implemented. Accessing the text or position stored in a register. |
| 32.23 Base 64 Encoding |
|
Conversion to or from base 64 encoding. |
| 32.24 MD5 Checksum |
|
Compute the MD5 "message digest"/"checksum". |
| 32.25 Atomic Change Groups |
|
Installing several buffer changes "atomically". |
| 32.26 Change Hooks |
|
Supplying functions to be run when text is changed. |
| 32.8.1 Kill Ring Concepts |
|
What text looks like in the kill ring. |
| 32.8.2 Functions for Killing |
|
Functions that kill text. |
| 32.8.3 Yanking |
|
How yanking is done. |
| 32.8.4 Functions for Yanking |
|
Commands that access the kill ring. |
| 32.8.5 Low-Level Kill Ring |
|
Functions and variables for kill ring access. |
| 32.8.6 Internals of the Kill Ring |
|
Variables that hold kill-ring data. |
| 32.17.1 Indentation Primitives |
|
Functions used to count and insert indentation. |
| 32.17.2 Indentation Controlled by Major Mode |
|
Customize indentation for different modes. |
| 32.17.3 Indenting an Entire Region |
|
Indent all the lines in a region. |
| 32.17.4 Indentation Relative to Previous Lines |
|
Indent the current line based on previous lines. |
| 32.17.5 Adjustable "Tab Stops" |
|
Adjustable, typewriter-like tab stops. |
| 32.17.6 Indentation-Based Motion Commands |
|
Move to first non-blank character. |
| 32.19.1 Examining Text Properties |
|
Looking at the properties of one character. |
| 32.19.2 Changing Text Properties |
|
Setting the properties of a range of text. |
| 32.19.3 Text Property Search Functions |
|
Searching for where a property changes value. |
| 32.19.4 Properties with Special Meanings |
|
Particular properties with special meanings. |
| 32.19.5 Formatted Text Properties |
|
Properties for representing formatting of text. |
| 32.19.6 Stickiness of Text Properties |
|
How inserted text gets properties from neighboring text. |
| 32.19.7 Lazy Computation of Text Properties |
|
Computing text properties in a lazy fashion only when text is examined. |
| 32.19.8 Defining Clickable Text |
|
Using text properties to make regions of text do something when you click on them. |
| 32.19.9 Links and Mouse-1 |
|
How to make Mouse-1 follow a link. |
| 32.19.10 Defining and Using Fields |
|
The field property defines fields within the buffer. |
| 32.19.11 Why Text Properties are not Intervals |
|
Why text properties do not use Lisp-visible text intervals. |
| 33.1 Text Representations |
|
Unibyte and multibyte representations |
| 33.2 Converting Text Representations |
|
Converting unibyte to multibyte and vice versa. |
| 33.3 Selecting a Representation |
|
Treating a byte sequence as unibyte or multi. |
| 33.4 Character Codes |
|
How unibyte and multibyte relate to codes of individual characters. |
| 33.5 Character Sets |
|
The space of possible character codes is divided into various character sets. |
| 33.6 Characters and Bytes |
|
More information about multibyte encodings. |
| 33.7 Splitting Characters |
|
Converting a character to its byte sequence. |
| 33.8 Scanning for Character Sets |
|
Which character sets are used in a buffer? |
| 33.9 Translation of Characters |
|
Translation tables are used for conversion. |
| 33.10 Coding Systems |
|
Coding systems are conversions for saving files. |
| 33.11 Input Methods |
|
Input methods allow users to enter various non-ASCII characters without special keyboards. |
| 33.12 Locales |
|
Interacting with the POSIX locale. |
| 33.10.1 Basic Concepts of Coding Systems |
|
Basic concepts. |
| 33.10.2 Encoding and I/O |
|
How file I/O functions handle coding systems. |
| 33.10.3 Coding Systems in Lisp |
|
Functions to operate on coding system names. |
| 33.10.4 User-Chosen Coding Systems |
|
Asking the user to choose a coding system. |
| 33.10.5 Default Coding Systems |
|
Controlling the default choices. |
| 33.10.6 Specifying a Coding System for One Operation |
|
Requesting a particular coding system for a single file operation. |
| 33.10.7 Explicit Encoding and Decoding |
|
Encoding or decoding text without doing I/O. |
| 33.10.8 Terminal I/O Encoding |
|
Use of encoding for terminal I/O. |
| 33.10.9 MS-DOS File Types |
|
How DOS "text" and "binary" files relate to coding systems. |
| 34.1 Searching for Strings |
|
Search for an exact match. |
| 34.2 Searching and Case |
|
Case-independent or case-significant searching. |
| 34.3 Regular Expressions |
|
Describing classes of strings. |
| 34.4 Regular Expression Searching |
|
Searching for a match for a regexp. |
| 34.5 POSIX Regular Expression Searching |
|
Searching POSIX-style for the longest match. |
| 34.6 The Match Data |
|
Finding out which part of the text matched, after a string or regexp search. |
| 34.7 Search and Replace |
|
Commands that loop, searching and replacing. |
| 34.8 Standard Regular Expressions Used in Editing |
|
Useful regexps for finding sentences, pages,... |
| 34.6.1 Replacing the Text that Matched |
|
Replacing a substring that was matched. |
| 34.6.2 Simple Match Data Access |
|
Accessing single items of match data, such as where a particular subexpression started. |
| 34.6.3 Accessing the Entire Match Data |
|
Accessing the entire match data at once, as a list. |
| 34.6.4 Saving and Restoring the Match Data |
|
Saving and restoring the match data. |
| 35.1 Syntax Table Concepts |
|
Basic concepts of syntax tables. |
| 35.2 Syntax Descriptors |
|
How characters are classified. |
| 35.3 Syntax Table Functions |
|
How to create, examine and alter syntax tables. |
| 35.4 Syntax Properties |
|
Overriding syntax with text properties. |
| 35.5 Motion and Syntax |
|
Moving over characters with certain syntaxes. |
| 35.6 Parsing Expressions |
|
Parsing balanced expressions using the syntax table. |
| 35.7 Some Standard Syntax Tables |
|
Syntax tables used by various major modes. |
| 35.8 Syntax Table Internals |
|
How syntax table information is stored. |
| 35.9 Categories |
|
Another way of classifying character syntax. |
| 36.1 Setting Up Abbrev Mode |
|
Setting up Emacs for abbreviation. |
| 36.2 Abbrev Tables |
|
Creating and working with abbrev tables. |
| 36.3 Defining Abbrevs |
|
Specifying abbreviations and their expansions. |
| 36.4 Saving Abbrevs in Files |
|
Saving abbrevs in files. |
| 36.5 Looking Up and Expanding Abbreviations |
|
Controlling expansion; expansion subroutines. |
| 36.6 Standard Abbrev Tables |
|
Abbrev tables used by various major modes. |
| 37.1 Functions that Create Subprocesses |
|
Functions that start subprocesses. |
| 37.2 Shell Arguments |
|
Quoting an argument to pass it to a shell. |
| 37.3 Creating a Synchronous Process |
|
Details of using synchronous subprocesses. |
| 37.4 Creating an Asynchronous Process |
|
Starting up an asynchronous subprocess. |
| 37.5 Deleting Processes |
|
Eliminating an asynchronous subprocess. |
| 37.6 Process Information |
|
Accessing run-status and other attributes. |
| 37.7 Sending Input to Processes |
|
Sending input to an asynchronous subprocess. |
| 37.8 Sending Signals to Processes |
|
Stopping, continuing or interrupting an asynchronous subprocess. |
| 37.9 Receiving Output from Processes |
|
Collecting output from an asynchronous subprocess. |
| 37.10 Sentinels: Detecting Process Status Changes |
|
Sentinels run when process run-status changes. |
| 37.11 Querying Before Exit |
|
Whether to query if exiting will kill a process. |
| 37.12 Transaction Queues |
|
Transaction-based communication with subprocesses. |
| 37.13 Network Connections |
|
Opening network connections. |
| 37.14 Network Servers |
|
Network servers let Emacs accept net connections. |
| 37.15 Datagrams |
|
UDP network connections. |
| 37.16 Low-Level Network Access |
|
Lower-level but more general function to create connections and servers. |
| 37.17 Misc Network Facilities |
|
Additional relevant functions for network connections. |
| 37.18 Packing and Unpacking Byte Arrays |
|
Using bindat to pack and unpack binary data. |
| 38.1 Refreshing the Screen |
|
Clearing the screen and redrawing everything on it. |
| 38.2 Forcing Redisplay |
|
Forcing redisplay. |
| 38.3 Truncation |
|
Folding or wrapping long text lines. |
| 38.4 The Echo Area |
|
Displaying messages at the bottom of the screen. |
| 38.5 Reporting Warnings |
|
Displaying warning messages for the user. |
| 38.6 Invisible Text |
|
Hiding part of the buffer text. |
| 38.7 Selective Display |
|
Hiding part of the buffer text (the old way). |
| 38.8 Temporary Displays |
|
Displays that go away automatically. |
| 38.9 Overlays |
|
Use overlays to highlight parts of the buffer. |
| 38.10 Width |
|
How wide a character or string is on the screen. |
| 38.11 Line Height |
|
Controlling the height of lines. |
| 38.12 Faces |
|
A face defines a graphics style for text characters: font, colors, etc. |
| 38.13 Fringes |
|
Controlling window fringes. |
| 38.14 Scroll Bars |
|
Controlling vertical scroll bars. |
38.15 The display Property |
|
Enabling special display features. |
| 38.16 Images |
|
Displaying images in Emacs buffers. |
| 38.17 Buttons |
|
Adding clickable buttons to Emacs buffers. |
| 38.18 Abstract Display |
|
Emacs' Widget for Object Collections. |
| 38.19 Blinking Parentheses |
|
How Emacs shows the matching open parenthesis. |
| 38.20 Usual Display Conventions |
|
The usual conventions for displaying nonprinting chars. |
| 38.21 Display Tables |
|
How to specify other conventions. |
| 38.22 Beeping |
|
Audible signal to the user. |
| 38.23 Window Systems |
|
Which window system is being used. |
| 38.12.1 Defining Faces |
|
How to define a face with defface. |
| 38.12.2 Face Attributes |
|
What is in a face? |
| 38.12.3 Face Attribute Functions |
|
Functions to examine and set face attributes. |
| 38.12.4 Displaying Faces |
|
How Emacs combines the faces specified for a character. |
| 38.12.5 Font Selection |
|
Finding the best available font for a face. |
| 38.12.6 Functions for Working with Faces |
|
How to define and examine faces. |
| 38.12.7 Automatic Face Assignment |
|
Hook for automatic face assignment. |
| 38.12.8 Looking Up Fonts |
|
Looking up the names of available fonts and information about them. |
| 38.12.9 Fontsets |
|
A fontset is a collection of fonts that handle a range of character sets. |
| 38.13.1 Fringe Size and Position |
|
Specifying where to put the window fringes. |
| 38.13.2 Fringe Indicators |
|
Displaying indicator icons in the window fringes. |
| 38.13.3 Fringe Cursors |
|
Displaying cursors in the right fringe. |
| 38.13.4 Fringe Bitmaps |
|
Specifying bitmaps for fringe indicators. |
| 38.13.5 Customizing Fringe Bitmaps |
|
Specifying your own bitmaps to use in the fringes. |
| 38.13.6 The Overlay Arrow |
|
Display of an arrow to indicate position. |
| 38.16.2 Image Descriptors |
|
How to specify an image for use in :display. |
| 38.16.3 XBM Images |
|
Special features for XBM format. |
| 38.16.4 XPM Images |
|
Special features for XPM format. |
| 38.16.5 GIF Images |
|
Special features for GIF format. |
| 38.16.6 PostScript Images |
|
Special features for PostScript format. |
| 38.16.7 Other Image Types |
|
Various other formats are supported. |
| 38.16.8 Defining Images |
|
Convenient ways to define an image for later use. |
| 38.16.9 Showing Images |
|
Convenient ways to display an image once it is defined. |
| 38.16.10 Image Cache |
|
Internal mechanisms of image display. |
| 39.1 Starting Up Emacs |
|
Customizing Emacs start-up processing. |
| 39.2 Getting Out of Emacs |
|
How exiting works (permanent or temporary). |
| 39.3 Operating System Environment |
|
Distinguish the name and kind of system. |
| 39.4 User Identification |
|
Finding the name and user id of the user. |
| 39.5 Time of Day |
|
Getting the current time. |
| 39.6 Time Conversion |
|
Converting a time from numeric form to a string, or to calendrical data (or vice versa). |
| 39.7 Parsing and Formatting Times |
|
Converting a time from numeric form to text and vice versa. |
| 39.8 Processor Run time |
|
Getting the run time used by Emacs. |
| 39.9 Time Calculations |
|
Adding, subtracting, comparing times, etc. |
| 39.10 Timers for Delayed Execution |
|
Setting a timer to call a function at a certain time. |
| 39.11 Idle Timers |
|
Setting a timer to call a function when Emacs has been idle for a certain length of time. |
| 39.12 Terminal Input |
|
Accessing and recording terminal input. |
| 39.13 Terminal Output |
|
Controlling and recording terminal output. |
| 39.14 Sound Output |
|
Playing sounds on the computer's speaker. |
| 39.15 Operating on X11 Keysyms |
|
Operating on key symbols for X Windows |
| 39.16 Batch Mode |
|
Running Emacs without terminal interaction. |
| 39.17 Session Management |
|
Saving and restoring state with X Session Management. |
| 39.1.1 Summary: Sequence of Actions at Startup |
|
Sequence of actions Emacs performs at start-up. |
| 39.1.2 The Init File, `.emacs' |
|
Details on reading the init file (`.emacs'). |
| 39.1.3 Terminal-Specific Initialization |
|
How the terminal-specific Lisp file is read. |
| 39.1.4 Command-Line Arguments |
|
How command-line arguments are processed, and how you can customize them. |
| D.1 Emacs Lisp Coding Conventions |
|
Conventions for clean and robust programs. |
| D.2 Key Binding Conventions |
|
Which keys should be bound by which programs. |
| D.3 Emacs Programming Tips |
|
Making Emacs code fit smoothly in Emacs. |
| D.4 Tips for Making Compiled Code Fast |
|
Making compiled code run fast. |
| D.5 Tips for Avoiding Compiler Warnings |
|
Turning off compiler warnings. |
| D.6 Tips for Documentation Strings |
|
Writing readable documentation strings. |
| D.7 Tips on Writing Comments |
|
Conventions for writing comments. |
| D.8 Conventional Headers for Emacs Libraries |
|
Standard headers for library packages. |