[Top] | [Contents] | [Index] | [ ? ] |
This Info file contains edition 2.8 of the GNU Emacs Lisp Reference Manual, corresponding to GNU Emacs version 21.2.
1. Introduction Introduction and conventions used. D.1 Emacs Lisp Coding Conventions Coding conventions for Emacs Lisp.
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.
9. Evaluation How Lisp expressions are evaluated. 10. Control Structures Conditionals, loops, nonlocal exits. 11. Variables Using symbols in programs to stand for values. 12. Functions A function is a Lisp program that can be invoked from other functions. 13. Macros Macros are a way to extend the Lisp language. 14. Writing Customization Definitions Writing customization declarations.
15. Loading Reading files of Lisp code into Lisp. 16. Byte Compilation Compilation makes programs run faster. 17. Advising Emacs Lisp Functions Adding to the definition of a function. 18. Debugging Lisp Programs Tools and tips for debugging Lisp programs.
19. Reading and Printing Lisp Objects Converting Lisp objects to text and back. 20. Minibuffers Using the minibuffer to read input. 21. Command Loop How the editor command loop works, and how you can call its subroutines. 22. Keymaps Defining the bindings from keys to commands. 23. Major and Minor Modes Defining major and minor modes. 24. Documentation Writing and using documentation strings.
25. Files Accessing files. 26. Backups and Auto-Saving Controlling how backups and auto-save files are made. 27. Buffers Creating and using buffer objects. 28. Windows Manipulating windows and displaying buffers. 29. Frames Making multiple X windows. 30. Positions Buffer positions and motion functions. 31. Markers Markers represent positions and update automatically when the text is changed.
32. Text Examining and changing text in buffers. 33. Non-ASCII Characters Non-ASCII text in buffers and strings. 34. Searching and Matching Searching buffers for strings or regexps. 35. Syntax Tables The syntax table controls word and list parsing. 36. Abbrevs and Abbrev Expansion How Abbrev mode works, and its data structures.
37. Processes Running and communicating with subprocesses. 38. Emacs Display Features for controlling the screen display. 39. Customizing the Calendar and Diary Customizing the calendar and diary. 40. Operating System Interface Getting the user id, system type, environment variables, and other such things.
Appendices
A. Emacs 20 Antinews Info for users downgrading to Emacs 20. 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.
Index Index including concepts, functions, variables, and other terms.
New Symbols Since the Previous Edition New functions and variables in Emacs 21.
-- The Detailed Node Listing ---
Here are other nodes that are inferiors of those already listed,
mentioned here so you can get to them in one step:
Introduction
1.1 Caveats Flaws and a request for help. 1.2 Lisp History Emacs Lisp is descended from Maclisp. 1.3 Conventions How the manual is formatted. 1.5 Acknowledgements The authors, editors, and sponsors of this manual.
Conventions
1.3.1 Some Terms Explanation of terms we use in this manual. 1.3.2 nil
andt
How the symbols nil
andt
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.
Tips and Conventions
D.1 Emacs Lisp Coding Conventions Conventions for clean and robust programs. D.2 Tips for Making Compiled Code Fast Making compiled code run fast. D.3 Tips for Documentation Strings Writing readable documentation strings. D.4 Tips on Writing Comments Conventions for writing comments. D.5 Conventional Headers for Emacs Libraries Standard headers for library packages.
Format of Descriptions
1.3.7.1 A Sample Function Description 1.3.7.2 A Sample Variable Description
Lisp Data Types
2.1 Printed Representation and Read Syntax How Lisp objects are represented as text. 2.2 Comments Comments and their formatting conventions. 2.3 Programming Types Types found in all Lisp systems. 2.4 Editing Types Types specific to Emacs. 2.6 Type Predicates Tests related to types. 2.7 Equality Predicates Tests of equality between any two objects.
Programming Types
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.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.4 Symbol Type A multi-use object that refers to a function, variable, property list, or itself. 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.
List Type
2.3.6.1 Dotted Pair Notation An alternative syntax for lists. 2.3.6.2 Association List Type A specially constructed list.
Editing Types
2.4.1 Buffer Type The basic object of editing. 2.4.3 Window Type What makes buffers visible. 2.4.5 Window Configuration Type Save what the screen looks like. 2.4.2 Marker Type A position in a buffer. 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.
Numbers
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.6 Arithmetic Operations How to add, subtract, multiply and divide. 3.8 Bitwise Operations on Integers Logical and, or, not, shifting. 3.5 Numeric Conversions Converting float to integer and vice versa. 3.9 Standard Mathematical Functions Trig, exponential and logarithmic functions. 3.10 Random Numbers Obtaining random integers, predictable or not.
Strings and Characters
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.5 Comparison of Characters and Strings Comparing characters or strings. 4.6 Conversion of Characters and Strings Converting characters or strings and vice versa. 4.7 Formatting Strings format
: Emacs's analogue ofprintf
.4.8 Case Conversion in Lisp Case conversion functions.
Lists
5.1 Lists and Cons Cells How lists are made out of cons cells. 5.2 Lists as Linked Pairs of Boxes Graphical notation to explain lists. 5.3 Predicates on Lists Is this object a list? Comparing two lists. 5.4 Accessing Elements of Lists Extracting the pieces of a list. 5.5 Building Cons Cells and Lists Creating list structure. 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.
Modifying Existing List Structure
5.6.1 Altering List Elements with setcar
Replacing an element in a list. 5.6.2 Altering the CDR of a List Replacing part of the list backbone. This can be used to remove or add elements. 5.6.3 Functions that Rearrange Lists Reordering the elements in a list; combining lists.
Sequences, Arrays, and Vectors
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 Functions specifically for vectors.
Symbols
8.1 Symbol Components Symbols have names, values, function definitions and property lists. 8.2 Defining Symbols A definition says how a symbol will be used. 8.3 Creating and Interning Symbols How symbols are kept unique. 8.4 Property Lists Each symbol has a property list for recording miscellaneous information.
Evaluation
9.1 Introduction to Evaluation Evaluation in the scheme of things. 9.4 Eval How to invoke the Lisp interpreter explicitly. 9.2 Kinds of Forms How various sorts of objects are evaluated. 9.3 Quoting Avoiding evaluation (to put constants in the program).
Kinds of Forms
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.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.
Control Structures
10.1 Sequencing Evaluation in textual order. 10.2 Conditionals if
,cond
.10.3 Constructs for Combining Conditions and
,or
,not
.10.4 Iteration while
loops.10.5 Nonlocal Exits Jumping out of a sequence.
Nonlocal Exits
10.5.1 Explicit Nonlocal Exits: catch
andthrow
Nonlocal exits for the program's own purposes. 10.5.2 Examples of catch
andthrow
Showing how such nonlocal exits can be written. 10.5.3 Errors How errors are signaled and handled. 10.5.4 Cleaning Up from Nonlocal Exits Arranging to run a cleanup form if an error happens.
Errors
10.5.3.1 How to Signal an Error How to report an error. 10.5.3.2 How Emacs Processes Errors What Emacs does when you report an error. 10.5.3.3 Writing Code to Handle Errors How you can trap errors and continue execution. 10.5.3.4 Error Symbols and Condition Names How errors are classified for trapping them.
Variables
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.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.
Scoping Rules for Variable Bindings
11.9.1 Scope Scope means where in the program a value is visible. Comparison with other languages. 11.9.2 Extent Extent means how long in time a value exists. 11.9.3 Implementation of Dynamic Scoping Two ways to implement dynamic scoping. 11.9.4 Proper Use of Dynamic Scoping How to use dynamic scoping carefully and avoid problems.
Buffer-Local Variables
11.10.1 Introduction to Buffer-Local Variables Introduction and concepts. 11.10.2 Creating and Deleting Buffer-Local Bindings Creating and destroying buffer-local bindings. 11.10.3 The Default Value of a Buffer-Local Variable The default value is seen in buffers that don't have their own buffer-local values.
Functions
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.10 Other Topics Related to Functions Cross-references to specific Lisp primitives that have a special bearing on how functions work.
Lambda Expressions
12.2.1 Components of a Lambda Expression The parts of a lambda expression. 12.2.2 A Simple Lambda-Expression Example A simple example. 12.2.3 Other Features of Argument Lists Details and special features of argument lists. 12.2.4 Documentation Strings of Functions How to put documentation in a function.
Macros
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.
Loading
15.1 How Programs Do Loading The load
function and others.15.4 Autoload Setting up a function to autoload. 15.6 Features Loading a library if it isn't already loaded. 15.5 Repeated Loading Precautions about loading a file twice.
Byte Compilation
16.2 The Compilation Functions Byte compilation functions. 16.7 Disassembled Byte-Code Disassembling byte-code; how to read byte-code.
Advising Functions
17.1 A Simple Advice Example A simple example to explain the basics of advice. 17.2 Defining Advice Detailed description of defadvice
.17.4 Computed Advice ...is to defadvice
asfset
is todefun
.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 Definition of Subr Argument Lists Accessing arguments when advising a primitive. 17.10 The Combined Definition How advice is implemented.
Debugging Lisp Programs
18.1 The Lisp Debugger How the Emacs Lisp debugger is implemented. 18.3 Debugging Invalid Lisp Syntax How to find syntax errors. 18.4 Debugging Problems in Compilation How to find errors that show up in byte compilation. 18.2 Edebug A source-level Emacs Lisp debugger.
The Lisp Debugger
18.1.1 Entering the Debugger on an Error Entering the debugger when an error happens. 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.
Debugging Invalid Lisp Syntax
18.3.1 Excess Open Parentheses How to find a spurious open paren or missing close. 18.3.2 Excess Close Parentheses How to find a spurious close paren or missing open.
Reading and Printing Lisp Objects
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.
Minibuffers
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.5 Completion How to invoke and customize completion. 20.6 Yes-or-No Queries Asking a question with a simple answer. 20.9 Minibuffer Miscellany Various customization hooks and variables.
Completion
(These are too low level to use the minibuffer.)
20.5.1 Basic Completion Functions Low-level functions for completing strings.
(reading buffer name, file name, etc.)
20.5.2 Completion and the Minibuffer Invoking the minibuffer with completion. 20.5.3 Minibuffer Commands that Do Completion Minibuffer commands that do completion. 20.5.4 High-Level Completion Functions Convenient special cases of completion
20.5.5 Reading File Names Using completion to read file names. 20.5.6 Programmed Completion Finding the completions for a given file name.
Command Loop
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 Information from the Command Loop Variables set by the command loop for you to examine. 21.6 Input Events What input looks like when you read it. 21.7 Reading Input How to read input events from the keyboard or mouse. 21.9 Waiting for Elapsed Time or Input Waiting for user input or elapsed time. 21.10 Quitting How C-g works. How to catch or defer quitting. 21.11 Prefix Command Arguments How the commands to set prefix args work. 21.12 Recursive Editing Entering a recursive edit, and why you usually shouldn't. 21.13 Disabling Commands How the command loop handles disabled commands. 21.14 Command History How the command history is set up, and how accessed. 21.15 Keyboard Macros How keyboard macros are implemented.
Defining Commands
21.2.1 Using interactive
General rules for interactive
.21.2.2 Code Characters for interactive
The standard letter-codes for reading arguments in various ways. 21.2.3 Examples of Using interactive
Examples of how to read interactive arguments.
Keymaps
22.1 Keymap Terminology Definitions of terms pertaining to keymaps. 22.2 Format of Keymaps What a keymap looks like as a Lisp object. 22.3 Creating Keymaps Functions to create and copy keymaps. 22.4 Inheritance and Keymaps How one keymap can inherit the bindings of another keymap. 22.5 Prefix Keys Defining a key with a keymap as its definition. 22.12 Menu Keymaps A keymap can define a menu for X or for use from the terminal. 22.6 Active Keymaps Each buffer has a local keymap to override the standard (global) bindings. Each minor mode can also override them. 22.7 Key Lookup How extracting elements from keymaps works. 22.8 Functions for Key Lookup How to request key lookup. 22.9 Changing Key Bindings Redefining a key in a keymap. 22.10 Commands for Binding Keys Interactive interfaces for redefining keys. 22.11 Scanning Keymaps Looking through all keymaps, for printing help.
Major and Minor Modes
23.1 Major Modes Defining major modes. 23.2 Minor Modes Defining minor modes. 23.3 Mode Line Format Customizing the text that appears in the mode line. 23.6 Hooks How to use hooks; how to write code that provides hooks.
Major Modes
23.1.1 Major Mode Conventions Coding conventions for keymaps, etc. 23.1.2 Major Mode Examples Text mode and Lisp modes. 23.1.3 How Emacs Chooses a Major Mode How Emacs chooses the major mode automatically. 23.1.4 Getting Help about a Major Mode Finding out how to use a mode.
Minor Modes
23.2.1 Conventions for Writing Minor Modes Tips for writing a minor mode. 23.2.2 Keymaps and Minor Modes How a minor mode can have its own keymap.
Mode Line Format
23.3.1 The Data Structure of the Mode Line The data structure that controls the mode line. 23.3.2 Variables Used in the Mode Line Variables used in that data structure. 23.3.3 %
-Constructs in the Mode LinePutting information into a mode line.
Documentation
24.1 Documentation Basics Good style for doc strings. Where to put them. How Emacs stores them. 24.2 Access to Documentation Strings How Lisp programs can access doc strings. 24.3 Substituting Key Bindings in Documentation Substituting current key bindings. 24.4 Describing Characters for Help Messages Making printable descriptions of non-printing characters and key sequences. 24.5 Help Functions Subroutines used by Emacs help facilities.
Files
25.1 Visiting Files Reading files into Emacs buffers for editing. 25.2 Saving Buffers Writing changed buffers back into files. 25.3 Reading from Files Reading files into other buffers. 25.4 Writing to Files Writing new files from parts of buffers. 25.5 File Locks Locking and unlocking files, to prevent simultaneous editing by two people. 25.6 Information about Files Testing existence, accessibility, size of files. 25.9 Contents of Directories Getting a list of the files in a directory. 25.7 Changing File Names and Attributes Renaming files, changing protection, etc. 25.8 File Names Decomposing and expanding file names.
Visiting Files
25.1.1 Functions for Visiting Files The usual interface functions for visiting. 25.1.2 Subroutines of Visiting Lower-level subroutines that they use.
Information about Files
25.6.1 Testing Accessibility Is a given file readable? Writable? 25.6.2 Distinguishing Kinds of Files Is it a directory? A link? 25.6.4 Other Information about Files How large is it? Any other names? Etc.
File Names
25.8.1 File Name Components The directory part of a file name, and the rest. 25.8.2 Directory Names A directory's name as a directory is different from its name as a file. 25.8.3 Absolute and Relative File Names Some file names are relative to a current directory. 25.8.4 Functions that Expand Filenames Converting relative file names to absolute ones. 25.8.5 Generating Unique File Names Generating names for temporary files. 25.8.6 File Name Completion Finding the completions for a given file name.
Backups and Auto-Saving
26.1 Backup Files How backup files are made; how their names are chosen. 26.2 Auto-Saving How auto-save files are made; how their names are chosen. 26.3 Reverting revert-buffer
, and how to customize what it does.
Backup Files
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.
Buffers
"behind Emacs's back".
27.1 Buffer Basics What is a buffer? 27.3 Buffer Names Accessing and changing buffer names. 27.4 Buffer File Name The buffer file name indicates which file is visited. 27.5 Buffer Modification A buffer is modified if it needs to be saved. 27.6 Comparison of Modification Time Determining whether the visited file was changed
27.7 Read-Only Buffers Modifying text is not allowed in a read-only buffer. 27.8 The Buffer List How to look at all the existing buffers. 27.9 Creating Buffers Functions that create buffers. 27.10 Killing Buffers Buffers exist until explicitly killed. 27.2 The Current Buffer Designating a buffer as current so primitives will access its contents.
Windows
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-lever functions for displaying a buffer and choosing a window for it. 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.12 Vertical Fractional Scrolling Moving text up and down in the window. 28.13 Horizontal Scrolling Moving text 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.17 Window Configurations Saving and restoring the state of the screen.
Frames
29.1 Creating Frames Creating additional frames. 29.2 Multiple Displays Creating frames on other X 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 X 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 Shapes Specifying the shape of the mouse pointer. 29.18 Window System Selections Transferring text to and from other windows. 29.19 Color Names Getting the definitions of color names. 29.21 X Resources Getting resource values from the server. 29.22 Display Feature Testing Determining the features of a terminal.
Positions
30.1 Point The special position where editing takes place. 30.2 Motion Changing point. 30.3 Excursions Temporary motion and buffer changes. 30.4 Narrowing Restricting editing to a portion of the buffer.
Motion
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.
Markers
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.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".
Text
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.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.14 Auto Filling How auto-fill mode is implemented to break lines. 32.11 Filling Functions for explicit filling. 32.12 Margins for Filling How to specify margins for filling commands. 32.15 Sorting Text Functions for sorting parts of the buffer. 32.17 Indentation Functions to insert or adjust indentation. 32.16 Counting Columns Computing horizontal positions, and using them. 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.25 Change Hooks Supplying functions to be run when text is changed.
The Kill Ring
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 Functions for Yanking Commands that access the kill ring. 32.8.4 Low-Level Kill Ring Functions and variables for kill ring access. 32.8.5 Internals of the Kill Ring Variables that hold kill-ring data.
Indentation
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.
Text Properties
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 Saving Text Properties in Files Saving text properties in files, and reading them back. 32.19.8 Lazy Computation of Text Properties Computing text properties in a lazy fashion only when text is examined. 32.19.9 Defining Clickable Text Using text properties to make regions of text do something when you click on them. 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.
Non-ASCII Characters
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 characters 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.
Searching and Matching
34.1 Searching for Strings Search for an exact match. 34.2 Regular Expressions Describing classes of strings. 34.3 Regular Expression Searching Searching for a match for a regexp. 34.6 The Match Data Finding out which part of the text matched various parts of a regexp, after regexp search. 34.6.4 Saving and Restoring the Match Data Saving and restoring this information. 34.8 Standard Regular Expressions Used in Editing Useful regexps for finding sentences, pages,... 34.7 Searching and Case Case-independent or case-significant searching.
Regular Expressions
34.2.1 Syntax of Regular Expressions Rules for writing regular expressions. 34.2.2 Complex Regexp Example Illustrates regular expression syntax.
Syntax Tables
35.2 Syntax Descriptors How characters are classified. 35.3 Syntax Table Functions How to create, examine and alter syntax tables. 35.6 Parsing Balanced 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.
Syntax Descriptors
35.2.1 Table of Syntax Classes Table of syntax classes. 35.2.2 Syntax Flags Additional flags each character can have.
Abbrevs And Abbrev Expansion
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.
Processes
37.1 Functions that Create Subprocesses Functions that start subprocesses. 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.12 Network Connections Opening network connections.
Receiving Output from Processes
37.9.1 Process Buffers If no filter, output is put in a buffer. 37.9.2 Process Filter Functions Filter functions accept output from the process. 37.9.3 Accepting Output from Processes How to wait until process output arrives.
Operating System Interface
40.1 Starting Up Emacs Customizing Emacs start-up processing. 40.2 Getting Out of Emacs How exiting works (permanent or temporary). 40.3 Operating System Environment Distinguish the name and kind of system. 40.8 Terminal Input Recording terminal input for debugging. 40.9 Terminal Output Recording terminal output for debugging. 40.12 Flow Control How to turn output flow control on or off. 40.13 Batch Mode Running Emacs without terminal interaction.
Starting Up Emacs
40.1.1 Summary: Sequence of Actions at Startup Sequence of actions Emacs performs at start-up. 40.1.2 The Init File, `.emacs' Details on reading the init file (`.emacs'). 40.1.3 Terminal-Specific Initialization How the terminal-specific Lisp file is read. 40.1.4 Command-Line Arguments How command line arguments are processed, and how you can customize them.
Getting out of Emacs
40.2.1 Killing Emacs Exiting Emacs irreversibly. 40.2.2 Suspending Emacs Exiting Emacs reversibly.
Emacs Display
38.1 Refreshing the Screen Clearing the screen and redrawing everything on it. 38.3 Truncation Folding or wrapping long text lines. 38.4 The Echo Area Where messages are displayed. 38.6 Selective Display Hiding part of the buffer text. 38.7 The Overlay Arrow Display of an arrow to indicate position. 38.8 Temporary Displays Displays that go away automatically. 21.9 Waiting for Elapsed Time or Input Forcing display update and waiting for user. 38.14 Blinking Parentheses How Emacs shows the matching open parenthesis. 38.16 Usual Display Conventions How control characters are displayed. 38.18 Beeping Audible signal to the user. 38.19 Window Systems Which window system is being used.
GNU Emacs Internals
E.1 Building Emacs How to preload Lisp libraries into Emacs. E.2 Pure Storage A kludge to make preloaded Lisp functions sharable. E.3 Garbage Collection Reclaiming space for Lisp objects no longer used. E.6 Object Internals Data formats of buffers, windows, processes. E.5 Writing Emacs Primitives Writing C code for Emacs.
Object Internals
E.6.1 Buffer Internals Components of a buffer structure. E.6.2 Window Internals Components of a window structure. E.6.3 Process Internals Components of a process structure.