1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-04 08:47:11 +00:00
emacs/lispref/elisp.texi

1173 lines
54 KiB
Plaintext
Raw Normal View History

1994-03-21 07:49:21 +00:00
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename elisp
@settitle GNU Emacs Lisp Reference Manual
@c %**end of header
@c Version of the manual and of Emacs.
@c Please remember to update the edition number in README as well.
2005-07-08 22:29:35 +00:00
@set VERSION 2.9
2006-12-19 19:25:57 +00:00
@set EMACSVER 22.0.92
@dircategory Emacs
1998-06-13 01:32:57 +00:00
@direntry
* Elisp: (elisp). The Emacs Lisp Reference Manual.
1998-06-13 01:32:57 +00:00
@end direntry
2006-07-05 14:11:15 +00:00
@c So that anyone making the printed manual gets the version we have
@c tuned to avoid bad line breaks, etc.
1998-05-19 03:45:57 +00:00
@smallbook
2006-07-05 14:11:15 +00:00
@c per rms and peterb, use 10pt fonts for the main text, mostly to
@c save on paper cost. Also, do not declare @setchapternewpage odd,
@c for the same reason. Do this inside @tex for now, so the
@c last-released makeinfo does not complain.
@tex
@fonttextsize 10
\global\hbadness=6000 % don't worry about not-too-underfull boxes
@end tex
2000-05-17 09:16:11 +00:00
@c Combine indices.
@synindex cp fn
@syncodeindex vr fn
@syncodeindex ky fn
@syncodeindex pg fn
@c We use the "type index" to index new functions and variables.
@c @syncodeindex tp fn
1998-05-19 03:45:57 +00:00
2005-06-21 18:39:14 +00:00
@copying
This is edition @value{VERSION} of the GNU Emacs Lisp
Reference Manual, corresponding to Emacs version @value{EMACSVER}.
1994-03-21 07:49:21 +00:00
Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,
1999, 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
Inc.
1994-03-21 07:49:21 +00:00
2005-06-21 18:39:14 +00:00
@quotation
2000-05-17 09:16:11 +00:00
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
2000-05-17 09:16:11 +00:00
any later version published by the Free Software Foundation; with the
Invariant Sections being ``GNU General Public License,'' with the
Front-Cover texts being ``A GNU Manual,'' and with the Back-Cover
2005-06-21 18:39:14 +00:00
Texts as in (a) below. A copy of the license is included in the
section entitled ``GNU Free Documentation License.''
2000-05-17 09:16:11 +00:00
(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
this GNU Manual, like GNU software. Copies published by the Free
Software Foundation raise funds for GNU development.''
2005-06-21 18:39:14 +00:00
@end quotation
@end copying
1994-03-21 07:49:21 +00:00
@titlepage
@title GNU Emacs Lisp Reference Manual
@subtitle For Emacs Version @value{EMACSVER}
@subtitle Revision @value{VERSION}, January 2002
1994-03-21 07:49:21 +00:00
@author by Bil Lewis, Dan LaLiberte, Richard Stallman
@author and the GNU Manual Group
@page
@vskip 0pt plus 1filll
2005-06-21 18:39:14 +00:00
@insertcopying
1994-03-21 07:49:21 +00:00
2005-06-21 18:39:14 +00:00
@sp 1
1994-03-21 07:49:21 +00:00
Published by the Free Software Foundation @*
2005-06-21 18:39:14 +00:00
51 Franklin St, Fifth Floor @*
Boston, MA 02110-1301 @*
USA @*
2006-10-16 18:51:34 +00:00
ISBN 1-882114-74-4
1994-03-21 07:49:21 +00:00
2005-06-21 18:39:14 +00:00
@sp 1
1994-03-21 07:49:21 +00:00
Cover art by Etienne Suvasa.
@end titlepage
@c Print the tables of contents
@summarycontents
@contents
1994-03-21 07:49:21 +00:00
@ifnottex
2000-05-26 20:18:01 +00:00
@node Top, Introduction, (dir), (dir)
@top Emacs Lisp
1994-03-21 07:49:21 +00:00
This Info file contains edition @value{VERSION} of the GNU Emacs Lisp
Reference Manual, corresponding to GNU Emacs version @value{EMACSVER}.
2000-01-05 15:18:01 +00:00
@end ifnottex
1994-03-21 07:49:21 +00:00
@menu
* Introduction:: Introduction and conventions used.
1994-05-05 07:21:27 +00:00
* Lisp Data Types:: Data types of objects in Emacs Lisp.
1994-03-21 07:49:21 +00:00
* Numbers:: Numbers and arithmetic functions.
* Strings and Characters:: Strings, and functions that work on them.
* Lists:: Lists, cons cells, and related functions.
* Sequences Arrays Vectors:: Lists, strings and vectors are called sequences.
Certain functions act on any kind of sequence.
The description of vectors is here as well.
1999-09-17 06:59:04 +00:00
* Hash Tables:: Very fast lookup-tables.
1994-03-21 07:49:21 +00:00
* Symbols:: Symbols represent names, uniquely.
* Evaluation:: How Lisp expressions are evaluated.
* Control Structures:: Conditionals, loops, nonlocal exits.
* Variables:: Using symbols in programs to stand for values.
* Functions:: A function is a Lisp program
that can be invoked from other functions.
* Macros:: Macros are a way to extend the Lisp language.
1998-02-28 01:53:53 +00:00
* Customization:: Writing customization declarations.
1994-03-21 07:49:21 +00:00
* Loading:: Reading files of Lisp code into Lisp.
* Byte Compilation:: Compilation makes programs run faster.
1998-04-22 02:41:08 +00:00
* Advising Functions:: Adding to the definition of a function.
1994-03-21 07:49:21 +00:00
* Debugging:: Tools and tips for debugging Lisp programs.
1994-05-05 07:21:27 +00:00
* Read and Print:: Converting Lisp objects to text and back.
1994-03-21 07:49:21 +00:00
* Minibuffers:: Using the minibuffer to read input.
* Command Loop:: How the editor command loop works,
and how you can call its subroutines.
* Keymaps:: Defining the bindings from keys to commands.
* Modes:: Defining major and minor modes.
* Documentation:: Writing and using documentation strings.
* Files:: Accessing files.
* Backups and Auto-Saving:: Controlling how backups and auto-save
files are made.
* Buffers:: Creating and using buffer objects.
* Windows:: Manipulating windows and displaying buffers.
2006-01-20 01:26:48 +00:00
* Frames:: Making multiple system-level windows.
1994-03-21 07:49:21 +00:00
* Positions:: Buffer positions and motion functions.
* Markers:: Markers represent positions and update
automatically when the text is changed.
* Text:: Examining and changing text in buffers.
1998-02-28 01:53:53 +00:00
* Non-ASCII Characters:: Non-ASCII text in buffers and strings.
1994-03-21 07:49:21 +00:00
* Searching and Matching:: Searching buffers for strings or regexps.
* Syntax Tables:: The syntax table controls word and list parsing.
* Abbrevs:: How Abbrev mode works, and its data structures.
* Processes:: Running and communicating with subprocesses.
1999-10-05 23:26:05 +00:00
* Display:: Features for controlling the screen display.
2000-11-02 12:38:52 +00:00
* System Interface:: Getting the user id, system type, environment
variables, and other such things.
1994-03-21 07:49:21 +00:00
Appendices
* Antinews:: Info for users downgrading to Emacs 21.
2000-08-17 11:14:01 +00:00
* GNU Free Documentation License:: The license for this documentation
2000-05-24 12:07:06 +00:00
* GPL:: Conditions for copying and changing GNU Emacs.
* Tips:: Advice and coding conventions for Emacs Lisp.
1994-03-21 07:49:21 +00:00
* GNU Emacs Internals:: Building and dumping Emacs;
internal data structures.
* Standard Errors:: List of all error symbols.
1998-04-22 02:41:08 +00:00
* Standard Buffer-Local Variables::
List of variables buffer-local in all buffers.
1994-03-21 07:49:21 +00:00
* Standard Keymaps:: List of standard keymaps.
* Standard Hooks:: List of standard hook variables.
* Index:: Index including concepts, functions, variables,
and other terms.
@ignore
* New Symbols:: New functions and variables in Emacs @value{EMACSVER}.
@end ignore
1998-02-28 01:53:53 +00:00
Detailed Node Listing
---------------------
1994-03-21 07:49:21 +00:00
Here are other nodes that are inferiors of those already listed,
mentioned here so you can get to them in one step:
Introduction
* Caveats:: Flaws and a request for help.
* Lisp History:: Emacs Lisp is descended from Maclisp.
* Conventions:: How the manual is formatted.
* Version Info:: Which Emacs version is running?
1994-03-21 07:49:21 +00:00
* Acknowledgements:: The authors, editors, and sponsors of this manual.
Conventions
* Some Terms:: Explanation of terms we use in this manual.
* nil and t:: How the symbols @code{nil} and @code{t} are used.
* Evaluation Notation:: The format we use for examples of evaluation.
* Printing Notation:: The format we use for examples that print output.
* Error Messages:: The format we use for examples of errors.
* Buffer Text Notation:: The format we use for buffer contents in examples.
* Format of Descriptions:: Notation for describing functions, variables, etc.
Format of Descriptions
2003-02-04 14:56:31 +00:00
* A Sample Function Description::
* A Sample Variable Description::
1994-03-21 07:49:21 +00:00
Lisp Data Types
* Printed Representation:: How Lisp objects are represented as text.
* Comments:: Comments and their formatting conventions.
* Programming Types:: Types found in all Lisp systems.
* Editing Types:: Types specific to Emacs.
* Circular Objects:: Read syntax for circular structure.
1994-03-21 07:49:21 +00:00
* Type Predicates:: Tests related to types.
* Equality Predicates:: Tests of equality between any two objects.
Programming Types
* Integer Type:: Numbers without fractional parts.
* Floating Point Type:: Numbers with fractional parts and with a large range.
* Character Type:: The representation of letters, numbers and
1999-10-05 23:26:05 +00:00
control characters.
* Symbol Type:: A multi-use object that refers to a function,
variable, property list, or itself.
1994-03-21 07:49:21 +00:00
* Sequence Type:: Both lists and arrays are classified as sequences.
1994-05-05 07:21:27 +00:00
* Cons Cell Type:: Cons cells, and lists (which are made from cons cells).
1994-03-21 07:49:21 +00:00
* Array Type:: Arrays include strings and vectors.
* String Type:: An (efficient) array of characters.
* Vector Type:: One-dimensional arrays.
* Char-Table Type:: One-dimensional sparse arrays indexed by characters.
* Bool-Vector Type:: One-dimensional arrays of @code{t} or @code{nil}.
* Hash Table Type:: Super-fast lookup tables.
1994-05-05 07:21:27 +00:00
* Function Type:: A piece of executable code you can call from elsewhere.
* Macro Type:: A method of expanding an expression into another
1994-03-21 07:49:21 +00:00
expression, more fundamental but less pretty.
* Primitive Function Type:: A function written in C, callable from Lisp.
* Byte-Code Type:: A function written in Lisp, then compiled.
* Autoload Type:: A type used for automatically loading seldom-used
1999-10-05 23:26:05 +00:00
functions.
1994-03-21 07:49:21 +00:00
Cons Cell and List Types
1994-03-21 07:49:21 +00:00
* Box Diagrams:: Drawing pictures of lists.
1994-03-21 07:49:21 +00:00
* Dotted Pair Notation:: An alternative syntax for lists.
* Association List Type:: A specially constructed list.
Editing Types
* Buffer Type:: The basic object of editing.
* Marker Type:: A position in a buffer.
1994-03-21 07:49:21 +00:00
* Window Type:: What makes buffers visible.
* Frame Type:: Windows subdivide frames.
1994-03-21 07:49:21 +00:00
* Window Configuration Type::Save what the screen looks like.
* Frame Configuration Type::Recording the status of all frames.
1994-03-21 07:49:21 +00:00
* Process Type:: A process running on the underlying OS.
* Stream Type:: Receive or send characters.
* Keymap Type:: What function a keystroke invokes.
1998-05-26 18:56:56 +00:00
* Overlay Type:: How an overlay is represented.
1994-03-21 07:49:21 +00:00
Numbers
* Integer Basics:: Representation and range of integers.
* Float Basics:: Representation and range of floating point.
* Predicates on Numbers:: Testing for numbers.
* Comparison of Numbers:: Equality and inequality predicates.
* Numeric Conversions:: Converting float to integer and vice versa.
1994-03-21 07:49:21 +00:00
* Arithmetic Operations:: How to add, subtract, multiply and divide.
* Rounding Operations:: Explicitly rounding floating point numbers.
1994-03-21 07:49:21 +00:00
* Bitwise Operations:: Logical and, or, not, shifting.
1995-06-05 12:23:13 +00:00
* Math Functions:: Trig, exponential and logarithmic functions.
1994-03-21 07:49:21 +00:00
* Random Numbers:: Obtaining random integers, predictable or not.
Strings and Characters
* String Basics:: Basic properties of strings and characters.
* Predicates for Strings:: Testing whether an object is a string or char.
* Creating Strings:: Functions to allocate new strings.
* Modifying Strings:: Altering the contents of an existing string.
1994-03-21 07:49:21 +00:00
* Text Comparison:: Comparing characters or strings.
* String Conversion:: Converting characters or strings and vice versa.
1998-05-26 18:56:56 +00:00
* Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}.
1998-05-19 03:45:57 +00:00
* Case Conversion:: Case conversion functions.
* Case Tables:: Customizing case conversion.
1994-03-21 07:49:21 +00:00
Lists
* Cons Cells:: How lists are made out of cons cells.
* List-related Predicates:: Is this object a list? Comparing two lists.
* List Elements:: Extracting the pieces of a list.
* Building Lists:: Creating list structure.
* Modifying Lists:: Storing new pieces into an existing list.
* Sets And Lists:: A list can represent a finite mathematical set.
* Association Lists:: A list can represent a finite relation or mapping.
* Rings:: Managing a fixed-size ring of objects.
1994-03-21 07:49:21 +00:00
Modifying Existing List Structure
* Setcar:: Replacing an element in a list.
* Setcdr:: Replacing part of the list backbone.
This can be used to remove or add elements.
* Rearrangement:: Reordering the elements in a list; combining lists.
Sequences, Arrays, and Vectors
* Sequence Functions:: Functions that accept any kind of sequence.
* Arrays:: Characteristics of arrays in Emacs Lisp.
* Array Functions:: Functions specifically for arrays.
* Vectors:: Functions specifically for vectors.
* Vector Functions:: Functions specifically for vectors.
* Char-Tables:: How to work with char-tables.
* Bool-Vectors:: How to work with bool-vectors.
Hash Tables
* Creating Hash:: Functions to create hash tables.
* Hash Access:: Reading and writing the hash table contents.
* Defining Hash:: Defining new comparison methods
* Other Hash:: Miscellaneous.
1994-03-21 07:49:21 +00:00
Symbols
* Symbol Components:: Symbols have names, values, function definitions
and property lists.
* Definitions:: A definition says how a symbol will be used.
* Creating Symbols:: How symbols are kept unique.
* Property Lists:: Each symbol has a property list
for recording miscellaneous information.
Evaluation
* Intro Eval:: Evaluation in the scheme of things.
* Forms:: How various sorts of objects are evaluated.
2003-02-04 14:56:31 +00:00
* Quoting:: Avoiding evaluation (to put constants in
1994-03-21 07:49:21 +00:00
the program).
* Eval:: How to invoke the Lisp interpreter explicitly.
1994-03-21 07:49:21 +00:00
Kinds of Forms
* Self-Evaluating Forms:: Forms that evaluate to themselves.
* Symbol Forms:: Symbols evaluate as variables.
* Classifying Lists:: How to distinguish various sorts of list forms.
* Function Indirection:: When a symbol appears as the car of a list,
we find the real function via the symbol.
1994-03-21 07:49:21 +00:00
* Function Forms:: Forms that call functions.
* Macro Forms:: Forms that call macros.
* Special Forms:: "Special forms" are idiosyncratic primitives,
1994-03-21 07:49:21 +00:00
most of them extremely important.
* Autoloading:: Functions set up to load files
containing their real definitions.
Control Structures
* Sequencing:: Evaluation in textual order.
* Conditionals:: @code{if}, @code{cond}, @code{when}, @code{unless}.
1994-03-21 07:49:21 +00:00
* Combining Conditions:: @code{and}, @code{or}, @code{not}.
* Iteration:: @code{while} loops.
* Nonlocal Exits:: Jumping out of a sequence.
Nonlocal Exits
* Catch and Throw:: Nonlocal exits for the program's own purposes.
* Examples of Catch:: Showing how such nonlocal exits can be written.
* Errors:: How errors are signaled and handled.
* Cleanups:: Arranging to run a cleanup form if an
error happens.
Errors
* Signaling Errors:: How to report an error.
* Processing of Errors:: What Emacs does when you report an error.
* Handling Errors:: How you can trap errors and continue execution.
1994-05-05 07:21:27 +00:00
* Error Symbols:: How errors are classified for trapping them.
1994-03-21 07:49:21 +00:00
Variables
* Global Variables:: Variable values that exist permanently, everywhere.
* Constant Variables:: Certain "variables" have values that never change.
* Local Variables:: Variable values that exist only temporarily.
* Void Variables:: Symbols that lack values.
* Defining Variables:: A definition says a symbol is used as a variable.
* Tips for Defining:: Things you should think about when you
define a variable.
1994-03-21 07:49:21 +00:00
* Accessing Variables:: Examining values of variables whose names
are known only at run time.
* Setting Variables:: Storing new values in variables.
* Variable Scoping:: How Lisp chooses among local and global values.
* Buffer-Local Variables:: Variable values in effect only in one buffer.
* Frame-Local Variables:: Variable values in effect only in one frame.
* Future Local Variables:: New kinds of local values we might add some day.
* File Local Variables:: Handling local variable lists in files.
* Variable Aliases:: Variables that are aliases for other variables.
* Variables with Restricted Values:: Non-constant variables whose value can
@emph{not} be an arbitrary Lisp object.
1994-03-21 07:49:21 +00:00
Scoping Rules for Variable Bindings
2003-02-04 14:56:31 +00:00
* Scope:: Scope means where in the program a value
1994-03-21 07:49:21 +00:00
is visible. Comparison with other languages.
* Extent:: Extent means how long in time a value exists.
* Impl of Scope:: Two ways to implement dynamic scoping.
2003-02-04 14:56:31 +00:00
* Using Scoping:: How to use dynamic scoping carefully and
1994-03-21 07:49:21 +00:00
avoid problems.
Buffer-Local Variables
* Intro to Buffer-Local:: Introduction and concepts.
* Creating Buffer-Local:: Creating and destroying buffer-local bindings.
* Default Value:: The default value is seen in buffers
1998-04-22 02:41:08 +00:00
that don't have their own buffer-local values.
1994-03-21 07:49:21 +00:00
Functions
* What Is a Function:: Lisp functions vs primitives; terminology.
* Lambda Expressions:: How functions are expressed as Lisp objects.
* Function Names:: A symbol can serve as the name of a function.
* Defining Functions:: Lisp expressions for defining functions.
* Calling Functions:: How to use an existing function.
* Mapping Functions:: Applying a function to each element of a list, etc.
2003-02-04 14:56:31 +00:00
* Anonymous Functions:: Lambda-expressions are functions with no names.
1994-03-21 07:49:21 +00:00
* Function Cells:: Accessing or setting the function definition
of a symbol.
* Obsolete Functions:: Declaring functions obsolete.
* Inline Functions:: Defining functions that the compiler will open code.
* Function Safety:: Determining whether a function is safe to call.
1994-03-21 07:49:21 +00:00
* Related Topics:: Cross-references to specific Lisp primitives
2003-02-04 14:56:31 +00:00
that have a special bearing on how
1994-03-21 07:49:21 +00:00
functions work.
Lambda Expressions
* Lambda Components:: The parts of a lambda expression.
* Simple Lambda:: A simple example.
* Argument List:: Details and special features of argument lists.
* Function Documentation:: How to put documentation in a function.
Macros
* Simple Macro:: A basic example.
* Expansion:: How, when and why macros are expanded.
* Compiling Macros:: How macros are expanded by the compiler.
* Defining Macros:: How to write a macro definition.
* Backquote:: Easier construction of list structure.
* Problems with Macros:: Don't evaluate the macro arguments too many times.
Don't hide the user's variables.
2003-08-06 01:44:00 +00:00
* Indenting Macros:: Specifying how to indent macro calls.
1994-03-21 07:49:21 +00:00
Writing Customization Definitions
* Common Keywords:: Common keyword arguments for all kinds of
customization declarations.
* Group Definitions:: Writing customization group definitions.
* Variable Definitions:: Declaring user options.
* Customization Types:: Specifying the type of a user option.
1994-03-21 07:49:21 +00:00
Loading
* How Programs Do Loading:: The @code{load} function and others.
* Load Suffixes:: Details about the suffixes that @code{load} tries.
2004-12-27 16:55:55 +00:00
* Library Search:: Finding a library to load.
* Loading Non-ASCII:: Non-@acronym{ASCII} characters in Emacs Lisp files.
1994-03-21 07:49:21 +00:00
* Autoload:: Setting up a function to autoload.
* Repeated Loading:: Precautions about loading a file twice.
2004-12-27 16:55:55 +00:00
* Named Features:: Loading a library if it isn't already loaded.
* Where Defined:: Finding which file defined a certain symbol.
* Unloading:: How to "unload" a library that was loaded.
2004-12-27 16:55:55 +00:00
* Hooks for Loading:: Providing code to be run when
particular libraries are loaded.
1994-03-21 07:49:21 +00:00
Byte Compilation
* Speed of Byte-Code:: An example of speedup from byte compilation.
1994-03-21 07:49:21 +00:00
* Compilation Functions:: Byte compilation functions.
* Docs and Compilation:: Dynamic loading of documentation strings.
* Dynamic Loading:: Dynamic loading of individual functions.
* Eval During Compile:: Code to be evaluated when you compile.
* Compiler Errors:: Handling compiler error messages.
* Byte-Code Objects:: The data type used for byte-compiled functions.
1994-03-21 07:49:21 +00:00
* Disassembly:: Disassembling byte-code; how to read byte-code.
Advising Emacs Lisp Functions
1998-05-19 03:45:57 +00:00
* Simple Advice:: A simple example to explain the basics of advice.
* Defining Advice:: Detailed description of @code{defadvice}.
* Around-Advice:: Wrapping advice around a function's definition.
1998-05-19 03:45:57 +00:00
* Computed Advice:: ...is to @code{defadvice} as @code{fset} is to @code{defun}.
* Activation of Advice:: Advice doesn't do anything until you activate it.
* Enabling Advice:: You can enable or disable each piece of advice.
* Preactivation:: Preactivation is a way of speeding up the
loading of compiled advice.
1998-05-26 18:56:56 +00:00
* Argument Access in Advice:: How advice can access the function's arguments.
* Advising Primitives:: Accessing arguments when advising a primitive.
1998-05-19 03:45:57 +00:00
* Combined Definition:: How advice is implemented.
1994-03-21 07:49:21 +00:00
Debugging Lisp Programs
* Debugger:: How the Emacs Lisp debugger is implemented.
* Edebug:: A source-level Emacs Lisp debugger.
1994-03-21 07:49:21 +00:00
* Syntax Errors:: How to find syntax errors.
* Test Coverage:: Ensuring you have tested all branches in your code.
2003-02-04 14:56:31 +00:00
* Compilation Errors:: How to find errors that show up in
1994-03-21 07:49:21 +00:00
byte compilation.
2003-02-04 14:56:31 +00:00
1994-03-21 07:49:21 +00:00
The Lisp Debugger
* Error Debugging:: Entering the debugger when an error happens.
* Infinite Loops:: Stopping and debugging a program that doesn't exit.
1994-03-21 07:49:21 +00:00
* Function Debugging:: Entering it when a certain function is called.
* Explicit Debug:: Entering it at a certain point in the program.
* Using Debugger:: What the debugger does; what you see while in it.
* Debugger Commands:: Commands used while in the debugger.
* Invoking the Debugger:: How to call the function @code{debug}.
* Internals of Debugger:: Subroutines of the debugger, and global variables.
Edebug
* Using Edebug:: Introduction to use of Edebug.
* Instrumenting:: You must instrument your code
in order to debug it with Edebug.
* Edebug Execution Modes:: Execution modes, stopping more or less often.
* Jumping:: Commands to jump to a specified place.
* Edebug Misc:: Miscellaneous commands.
2005-06-14 23:36:31 +00:00
* Breaks:: Setting breakpoints to make the program stop.
* Trapping Errors:: Trapping errors with Edebug.
* Edebug Views:: Views inside and outside of Edebug.
* Edebug Eval:: Evaluating expressions within Edebug.
* Eval List:: Expressions whose values are displayed
each time you enter Edebug.
* Printing in Edebug:: Customization of printing.
* Trace Buffer:: How to produce trace output in a buffer.
* Coverage Testing:: How to test evaluation coverage.
* The Outside Context:: Data that Edebug saves and restores.
2005-06-14 23:36:31 +00:00
* Edebug and Macros:: Specifying how to handle macro calls.
* Edebug Options:: Option variables for customizing Edebug.
1994-03-21 07:49:21 +00:00
Debugging Invalid Lisp Syntax
* Excess Open:: How to find a spurious open paren or missing close.
* Excess Close:: How to find a spurious close paren or missing open.
Reading and Printing Lisp Objects
* Streams Intro:: Overview of streams, reading and printing.
2003-02-04 14:56:31 +00:00
* Input Streams:: Various data types that can be used as
1994-03-21 07:49:21 +00:00
input streams.
* Input Functions:: Functions to read Lisp objects from text.
2003-02-04 14:56:31 +00:00
* Output Streams:: Various data types that can be used as
1994-03-21 07:49:21 +00:00
output streams.
* Output Functions:: Functions to print Lisp objects as text.
* Output Variables:: Variables that control what the printing
functions do.
1994-03-21 07:49:21 +00:00
Minibuffers
* Intro to Minibuffers:: Basic information about minibuffers.
* Text from Minibuffer:: How to read a straight text string.
* Object from Minibuffer:: How to read a Lisp object or expression.
* Minibuffer History:: Recording previous minibuffer inputs
so the user can reuse them.
* Initial Input:: Specifying initial contents for the minibuffer.
1994-03-21 07:49:21 +00:00
* Completion:: How to invoke and customize completion.
* Yes-or-No Queries:: Asking a question with a simple answer.
* Multiple Queries:: Asking a series of similar questions.
* Reading a Password:: Reading a password from the terminal.
2005-08-09 12:06:59 +00:00
* Minibuffer Commands:: Commands used as key bindings in minibuffers.
* Minibuffer Contents:: How such commands access the minibuffer text.
* Minibuffer Windows:: Operating on the special minibuffer windows.
* Recursive Mini:: Whether recursive entry to minibuffer is allowed.
1994-03-21 07:49:21 +00:00
* Minibuffer Misc:: Various customization hooks and variables.
Completion
* Basic Completion:: Low-level functions for completing strings.
(These are too low level to use the minibuffer.)
* Minibuffer Completion:: Invoking the minibuffer with completion.
* Completion Commands:: Minibuffer commands that do completion.
* High-Level Completion:: Convenient special cases of completion
(reading buffer name, file name, etc.)
* Reading File Names:: Using completion to read file names.
* Programmed Completion:: Finding the completions for a given file name.
Command Loop
* Command Overview:: How the command loop reads commands.
* Defining Commands:: Specifying how a function should read arguments.
* Interactive Call:: Calling a command, so that it will read arguments.
* Command Loop Info:: Variables set by the command loop for you to examine.
* Adjusting Point:: Adjustment of point after a command.
1994-03-21 07:49:21 +00:00
* Input Events:: What input looks like when you read it.
* Reading Input:: How to read input events from the keyboard or mouse.
* Special Events:: Events processed immediately and individually.
1994-03-21 07:49:21 +00:00
* Waiting:: Waiting for user input or elapsed time.
* Quitting:: How @kbd{C-g} works. How to catch or defer quitting.
* Prefix Command Arguments:: How the commands to set prefix args work.
* Recursive Editing:: Entering a recursive edit,
and why you usually shouldn't.
* Disabling Commands:: How the command loop handles disabled commands.
* Command History:: How the command history is set up, and how accessed.
* Keyboard Macros:: How keyboard macros are implemented.
Defining Commands
* Using Interactive:: General rules for @code{interactive}.
* Interactive Codes:: The standard letter-codes for reading arguments
in various ways.
* Interactive Examples:: Examples of how to read interactive arguments.
Keymaps
2006-05-25 17:03:46 +00:00
* Key Sequences:: Key sequences as Lisp objects.
* Keymap Basics:: Basic concepts of keymaps.
1994-03-21 07:49:21 +00:00
* Format of Keymaps:: What a keymap looks like as a Lisp object.
* Creating Keymaps:: Functions to create and copy keymaps.
* Inheritance and Keymaps:: How one keymap can inherit the bindings
of another keymap.
* Prefix Keys:: Defining a key with a keymap as its definition.
* Active Keymaps:: Each buffer has a local keymap
to override the standard (global) bindings.
1999-10-05 23:26:05 +00:00
Each minor mode can also override them.
1994-03-21 07:49:21 +00:00
* Key Lookup:: How extracting elements from keymaps works.
* Functions for Key Lookup:: How to request key lookup.
* Changing Key Bindings:: Redefining a key in a keymap.
2006-11-06 16:09:14 +00:00
* Remapping Commands:: A keymap can translate one command to another.
1994-03-21 07:49:21 +00:00
* Key Binding Commands:: Interactive interfaces for redefining keys.
* Scanning Keymaps:: Looking through all keymaps, for printing help.
* Menu Keymaps:: A keymap can define a menu for X
or for use from the terminal.
1994-03-21 07:49:21 +00:00
Major and Minor Modes
* Hooks:: How to use hooks; how to write code that
provides hooks.
1994-03-21 07:49:21 +00:00
* Major Modes:: Defining major modes.
* Minor Modes:: Defining minor modes.
* Mode Line Format:: Customizing the text that appears in the mode line.
* Imenu:: How a mode can provide a menu
of definitions in the buffer.
* Font Lock Mode:: How modes can highlight text according to syntax.
* Desktop Save Mode:: How modes can have buffer state saved between
Emacs sessions.
1994-03-21 07:49:21 +00:00
Major Modes
* Major Mode Basics::
1994-03-21 07:49:21 +00:00
* Major Mode Conventions:: Coding conventions for keymaps, etc.
* Example Major Modes:: Text mode and Lisp modes.
* Auto Major Mode:: How Emacs chooses the major mode automatically.
* Mode Help:: Finding out how to use a mode.
* Derived Modes:: Defining a new major mode based on another major
mode.
* Generic Modes:: Defining a simple major mode that supports
comment syntax and Font Lock mode.
* Mode Hooks:: Hooks run at the end of major mode functions.
1994-03-21 07:49:21 +00:00
Minor Modes
* Minor Mode Conventions:: Tips for writing a minor mode.
* Keymaps and Minor Modes:: How a minor mode can have its own keymap.
* Defining Minor Modes:: A convenient facility for defining minor modes.
1994-03-21 07:49:21 +00:00
Mode Line Format
* Mode Line Basics::
1994-03-21 07:49:21 +00:00
* Mode Line Data:: The data structure that controls the mode line.
* Mode Line Variables:: Variables used in that data structure.
* %-Constructs:: Putting information into a mode line.
* Properties in Mode:: Using text properties in the mode line.
* Header Lines:: Like a mode line, but at the top.
* Emulating Mode Line:: Formatting text as the mode line would.
1994-03-21 07:49:21 +00:00
Documentation
* Documentation Basics:: Good style for doc strings.
Where to put them. How Emacs stores them.
* Accessing Documentation:: How Lisp programs can access doc strings.
* Keys in Documentation:: Substituting current key bindings.
* Describing Characters:: Making printable descriptions of
non-printing characters and key sequences.
* Help Functions:: Subroutines used by Emacs help facilities.
Files
* Visiting Files:: Reading files into Emacs buffers for editing.
* Saving Buffers:: Writing changed buffers back into files.
* Reading from Files:: Reading files into other buffers.
* Writing to Files:: Writing new files from parts of buffers.
* File Locks:: Locking and unlocking files, to prevent
simultaneous editing by two people.
* Information about Files:: Testing existence, accessibility, size of files.
1998-02-28 01:53:53 +00:00
* Changing Files:: Renaming files, changing protection, etc.
* File Names:: Decomposing and expanding file names.
* Contents of Directories:: Getting a list of the files in a directory.
* Create/Delete Dirs:: Creating and Deleting Directories.
* Magic File Names:: Defining "magic" special handling
for certain file names.
* Format Conversion:: Conversion to and from various file formats.
1994-03-21 07:49:21 +00:00
Visiting Files
* Visiting Functions:: The usual interface functions for visiting.
* Subroutines of Visiting:: Lower-level subroutines that they use.
Information about Files
* Testing Accessibility:: Is a given file readable? Writable?
* Kinds of Files:: Is it a directory? A symbolic link?
* Truenames:: Eliminating symbolic links from a file name.
1994-03-21 07:49:21 +00:00
* File Attributes:: How large is it? Any other names? Etc.
File Names
* File Name Components:: The directory part of a file name, and the rest.
2003-02-04 14:56:31 +00:00
* Relative File Names:: Some file names are relative to a
1994-03-21 07:49:21 +00:00
current directory.
* Directory Names:: A directory's name as a directory
is different from its name as a file.
1994-03-21 07:49:21 +00:00
* File Name Expansion:: Converting relative file names to absolute ones.
* Unique File Names:: Generating names for temporary files.
* File Name Completion:: Finding the completions for a given file name.
* Standard File Names:: If your package uses a fixed file name,
how to handle various operating systems simply.
1994-03-21 07:49:21 +00:00
Backups and Auto-Saving
2003-02-04 14:56:31 +00:00
* Backup Files:: How backup files are made; how their names
1994-03-21 07:49:21 +00:00
are chosen.
* Auto-Saving:: How auto-save files are made; how their
names are chosen.
2003-02-04 14:56:31 +00:00
* Reverting:: @code{revert-buffer}, and how to customize
1994-03-21 07:49:21 +00:00
what it does.
Backup Files
* Making Backups:: How Emacs makes backup files, and when.
2003-02-04 14:56:31 +00:00
* Rename or Copy:: Two alternatives: renaming the old file
1994-03-21 07:49:21 +00:00
or copying it.
* Numbered Backups:: Keeping multiple backups for each source file.
* Backup Names:: How backup file names are computed; customization.
Buffers
* Buffer Basics:: What is a buffer?
* Current Buffer:: Designating a buffer as current
so primitives will access its contents.
1994-03-21 07:49:21 +00:00
* Buffer Names:: Accessing and changing buffer names.
* Buffer File Name:: The buffer file name indicates which file
is visited.
* Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved.
* Modification Time:: Determining whether the visited file was changed
"behind Emacs's back".
1994-03-21 07:49:21 +00:00
* Read Only Buffers:: Modifying text is not allowed in a
read-only buffer.
* The Buffer List:: How to look at all the existing buffers.
* Creating Buffers:: Functions that create buffers.
* Killing Buffers:: Buffers exist until explicitly killed.
* Indirect Buffers:: An indirect buffer shares text with some
other buffer.
* Buffer Gap:: The gap in the buffer.
1994-03-21 07:49:21 +00:00
Windows
* Basic Windows:: Basic information on using windows.
* Splitting Windows:: Splitting one window into two windows.
* Deleting Windows:: Deleting a window gives its space to other windows.
* Selecting Windows:: The selected window is the one that you edit in.
* Cyclic Window Ordering:: Moving around the existing windows.
* Buffers and Windows:: Each window displays the contents of a buffer.
* Displaying Buffers:: Higher-lever functions for displaying a buffer
and choosing a window for it.
* Choosing Window:: How to choose a window for displaying a buffer.
1994-03-21 07:49:21 +00:00
* Window Point:: Each window has its own location of point.
* Window Start:: The display-start position controls which text
2003-02-04 14:56:31 +00:00
is on-screen in the window.
* Textual Scrolling:: Moving text up and down through the window.
* Vertical Scrolling:: Moving the contents up and down on the window.
* Horizontal Scrolling:: Moving the contents sideways on the window.
1994-03-21 07:49:21 +00:00
* Size of Window:: Accessing the size of a window.
* Resizing Windows:: Changing the size of a window.
* Coordinates and Windows:: Converting coordinates to windows.
1994-03-21 07:49:21 +00:00
* Window Configurations:: Saving and restoring the state of the screen.
* Window Hooks:: Hooks for scrolling, window size changes,
redisplay going past a certain point,
or window configuration changes.
1994-03-21 07:49:21 +00:00
1995-06-06 19:21:15 +00:00
Frames
* Creating Frames:: Creating additional frames.
* Multiple Displays:: Creating frames on other X displays.
* Frame Parameters:: Controlling frame size, position, font, etc.
* Frame Titles:: Automatic updating of frame titles.
* Deleting Frames:: Frames last until explicitly deleted.
* Finding All Frames:: How to examine all existing frames.
* Frames and Windows:: A frame contains windows;
display of text always works through windows.
* Minibuffers and Frames:: How a frame finds the minibuffer to use.
* Input Focus:: Specifying the selected frame.
* Visibility of Frames:: Frames may be visible or invisible, or icons.
* Raising and Lowering:: Raising a frame makes it hide other X windows;
1998-05-26 18:56:56 +00:00
lowering it puts it underneath the others.
1995-06-06 19:21:15 +00:00
* Frame Configurations:: Saving the state of all frames.
* Mouse Tracking:: Getting events that say when the mouse moves.
* Mouse Position:: Asking where the mouse is, or moving it.
* Pop-Up Menus:: Displaying a menu for the user to select from.
* Dialog Boxes:: Displaying a box to ask yes or no.
2006-05-23 03:02:44 +00:00
* Pointer Shape:: Specifying the shape of the mouse pointer.
1998-05-27 23:47:15 +00:00
* Window System Selections::Transferring text to and from other windows.
1995-06-06 19:21:15 +00:00
* Color Names:: Getting the definitions of color names.
* Text Terminal Colors:: Defining colors for text-only terminals.
1995-06-06 19:21:15 +00:00
* Resources:: Getting resource values from the server.
2000-01-28 17:04:22 +00:00
* Display Feature Testing:: Determining the features of a terminal.
1995-06-06 19:21:15 +00:00
1994-03-21 07:49:21 +00:00
Positions
* Point:: The special position where editing takes place.
* Motion:: Changing point.
* Excursions:: Temporary motion and buffer changes.
* Narrowing:: Restricting editing to a portion of the buffer.
Motion
* Character Motion:: Moving in terms of characters.
* Word Motion:: Moving in terms of words.
* Buffer End Motion:: Moving to the beginning or end of the buffer.
* Text Lines:: Moving in terms of lines of text.
* Screen Lines:: Moving in terms of lines as displayed.
* List Motion:: Moving by parsing lists and sexps.
* Skipping Characters:: Skipping characters belonging to a certain set.
Markers
* Overview of Markers:: The components of a marker, and how it relocates.
* Predicates on Markers:: Testing whether an object is a marker.
* Creating Markers:: Making empty markers or markers at certain places.
* Information from Markers::Finding the marker's buffer or character
position.
* Marker Insertion Types:: Two ways a marker can relocate when you
insert where it points.
1998-02-28 01:53:53 +00:00
* Moving Markers:: Moving the marker to a new buffer or position.
* The Mark:: How "the mark" is implemented with a marker.
* The Region:: How to access "the region".
1994-03-21 07:49:21 +00:00
Text
* Near Point:: Examining text in the vicinity of point.
* Buffer Contents:: Examining text in a general fashion.
* Comparing Text:: Comparing substrings of buffers.
1994-03-21 07:49:21 +00:00
* Insertion:: Adding new text to a buffer.
* Commands for Insertion:: User-level commands to insert text.
* Deletion:: Removing text from a buffer.
* User-Level Deletion:: User-level commands to delete text.
* The Kill Ring:: Where removed text sometimes is saved for
later use.
* Undo:: Undoing changes to the text of a buffer.
* Maintaining Undo:: How to enable and disable undo information.
How to control how much information is kept.
1994-03-21 07:49:21 +00:00
* Filling:: Functions for explicit filling.
1995-06-06 19:21:15 +00:00
* Margins:: How to specify margins for filling commands.
* Adaptive Fill:: Adaptive Fill mode chooses a fill prefix
from context.
* Auto Filling:: How auto-fill mode is implemented to break lines.
1994-03-21 07:49:21 +00:00
* Sorting:: Functions for sorting parts of the buffer.
* Columns:: Computing horizontal positions, and using them.
* Indentation:: Functions to insert or adjust indentation.
1994-03-21 07:49:21 +00:00
* Case Changes:: Case conversion of parts of the buffer.
1996-07-17 04:54:04 +00:00
* Text Properties:: Assigning Lisp property lists to text characters.
1994-03-21 07:49:21 +00:00
* Substitution:: Replacing a given character wherever it appears.
1996-07-17 04:54:04 +00:00
* Transposition:: Swapping two portions of a buffer.
1994-03-21 07:49:21 +00:00
* Registers:: How registers are implemented. Accessing
the text or position stored in a register.
2003-08-13 17:29:53 +00:00
* Base 64:: Conversion to or from base 64 encoding.
* MD5 Checksum:: Compute the MD5 "message digest"/"checksum".
* Atomic Changes:: Installing several buffer changes "atomically".
1996-07-17 04:54:04 +00:00
* Change Hooks:: Supplying functions to be run when text is changed.
2003-02-04 14:56:31 +00:00
1994-03-21 07:49:21 +00:00
The Kill Ring
* Kill Ring Concepts:: What text looks like in the kill ring.
* Kill Functions:: Functions that kill text.
2003-08-13 17:29:53 +00:00
* Yanking:: How yanking is done.
1994-03-21 07:49:21 +00:00
* Yank Commands:: Commands that access the kill ring.
1995-06-05 12:23:13 +00:00
* Low-Level Kill Ring:: Functions and variables for kill ring access.
1994-03-21 07:49:21 +00:00
* Internals of Kill Ring:: Variables that hold kill-ring data.
Indentation
* Primitive Indent:: Functions used to count and insert indentation.
* Mode-Specific Indent:: Customize indentation for different modes.
* Region Indent:: Indent all the lines in a region.
* Relative Indent:: Indent the current line based on previous lines.
* Indent Tabs:: Adjustable, typewriter-like tab stops.
* Motion by Indent:: Move to first non-blank character.
1996-07-17 04:54:04 +00:00
Text Properties
* Examining Properties:: Looking at the properties of one character.
* Changing Properties:: Setting the properties of a range of text.
* Property Search:: Searching for where a property changes value.
* Special Properties:: Particular properties with special meanings.
* Format Properties:: Properties for representing formatting of text.
* Sticky Properties:: How inserted text gets properties from
neighboring text.
* Saving Properties:: Saving text properties in files, and reading
them back.
* Lazy Properties:: Computing text properties in a lazy fashion
only when text is examined.
* Clickable Text:: Using text properties to make regions of text
do something when you click on them.
* Links and Mouse-1:: How to make @key{Mouse-1} follow a link.
* Fields:: The @code{field} property defines
fields within the buffer.
1996-07-17 04:54:04 +00:00
* Not Intervals:: Why text properties do not use
Lisp-visible text intervals.
2000-04-18 21:27:18 +00:00
Non-ASCII Characters
* Text Representations:: Unibyte and multibyte representations
* Converting Representations:: Converting unibyte to multibyte and vice versa.
* Selecting a Representation:: Treating a byte sequence as unibyte or multi.
* Character Codes:: How unibyte and multibyte relate to
codes of individual characters.
* Character Sets:: The space of possible characters codes
is divided into various character sets.
* Chars and Bytes:: More information about multibyte encodings.
* Splitting Characters:: Converting a character to its byte sequence.
* Scanning Charsets:: Which character sets are used in a buffer?
* Translation of Characters:: Translation tables are used for conversion.
* Coding Systems:: Coding systems are conversions for saving files.
* Input Methods:: Input methods allow users to enter various
2001-11-09 02:42:55 +00:00
non-ASCII characters without special keyboards.
2000-04-18 21:27:18 +00:00
* Locales:: Interacting with the POSIX locale.
1994-03-21 07:49:21 +00:00
Searching and Matching
* String Search:: Search for an exact match.
2005-08-29 08:45:50 +00:00
* Searching and Case:: Case-independent or case-significant searching.
1994-03-21 07:49:21 +00:00
* Regular Expressions:: Describing classes of strings.
* Regexp Search:: Searching for a match for a regexp.
* POSIX Regexps:: Searching POSIX-style for the longest match.
2005-08-29 08:45:50 +00:00
* Match Data:: Finding out which part of the text matched,
after a string or regexp search.
* Search and Replace:: Commands that loop, searching and replacing.
* Standard Regexps:: Useful regexps for finding sentences, pages,...
1994-03-21 07:49:21 +00:00
Regular Expressions
* Syntax of Regexps:: Rules for writing regular expressions.
* Regexp Example:: Illustrates regular expression syntax.
* Regexp Functions:: Functions for operating on regular expressions.
1994-03-21 07:49:21 +00:00
Syntax Tables
* Syntax Basics:: Basic concepts of syntax tables.
1994-03-21 07:49:21 +00:00
* Syntax Descriptors:: How characters are classified.
* Syntax Table Functions:: How to create, examine and alter syntax tables.
* Syntax Properties:: Overriding syntax with text properties.
* Motion and Syntax:: Moving over characters with certain syntaxes.
1994-03-21 07:49:21 +00:00
* Parsing Expressions:: Parsing balanced expressions
using the syntax table.
* Standard Syntax Tables:: Syntax tables used by various major modes.
* Syntax Table Internals:: How syntax table information is stored.
* Categories:: Another way of classifying character syntax.
1994-03-21 07:49:21 +00:00
Syntax Descriptors
* Syntax Class Table:: Table of syntax classes.
* Syntax Flags:: Additional flags each character can have.
Abbrevs And Abbrev Expansion
* Abbrev Mode:: Setting up Emacs for abbreviation.
* Abbrev Tables:: Creating and working with abbrev tables.
1994-03-21 07:49:21 +00:00
* Defining Abbrevs:: Specifying abbreviations and their expansions.
* Abbrev Files:: Saving abbrevs in files.
* Abbrev Expansion:: Controlling expansion; expansion subroutines.
1994-03-21 07:49:21 +00:00
* Standard Abbrev Tables:: Abbrev tables used by various major modes.
Processes
* Subprocess Creation:: Functions that start subprocesses.
* Shell Arguments:: Quoting an argument to pass it to a shell.
1994-03-21 07:49:21 +00:00
* Synchronous Processes:: Details of using synchronous subprocesses.
* Asynchronous Processes:: Starting up an asynchronous subprocess.
* Deleting Processes:: Eliminating an asynchronous subprocess.
* Process Information:: Accessing run-status and other attributes.
* Input to Processes:: Sending input to an asynchronous subprocess.
* Signals to Processes:: Stopping, continuing or interrupting
an asynchronous subprocess.
* Output from Processes:: Collecting output from an asynchronous subprocess.
* Sentinels:: Sentinels run when process run-status changes.
* Query Before Exit:: Whether to query if exiting will kill a process.
* Transaction Queues:: Transaction-based communication with subprocesses.
1995-06-06 19:21:15 +00:00
* Network:: Opening network connections.
* Network Servers:: Network servers let Emacs accept net connections.
* Datagrams:: UDP network connections.
* Low-Level Network:: Lower-level but more general function
to create connections and servers.
2005-08-11 19:59:29 +00:00
* Misc Network:: Additional relevant functions for network connections.
* Byte Packing:: Using bindat to pack and unpack binary data.
1994-03-21 07:49:21 +00:00
Receiving Output from Processes
* Process Buffers:: If no filter, output is put in a buffer.
* Filter Functions:: Filter functions accept output from the process.
2003-08-06 03:17:37 +00:00
* Decoding Output:: Filters can get unibyte or multibyte strings.
1994-03-21 07:49:21 +00:00
* Accepting Output:: How to wait until process output arrives.
Emacs Display
* Refresh Screen:: Clearing the screen and redrawing everything on it.
* Forcing Redisplay:: Forcing redisplay.
* Truncation:: Folding or wrapping long text lines.
* The Echo Area:: Displaying messages at the bottom of the screen.
* Warnings:: Displaying warning messages for the user.
* Invisible Text:: Hiding part of the buffer text.
* Selective Display:: Hiding part of the buffer text (the old way).
* Temporary Displays:: Displays that go away automatically.
* Overlays:: Use overlays to highlight parts of the buffer.
* Width:: How wide a character or string is on the screen.
* Line Height:: Controlling the height of lines.
* Faces:: A face defines a graphics style
for text characters: font, colors, etc.
* Fringes:: Controlling window fringes.
* Scroll Bars:: Controlling vertical scroll bars.
* Display Property:: Enabling special display features.
* Images:: Displaying images in Emacs buffers.
* Buttons:: Adding clickable buttons to Emacs buffers.
2006-05-27 18:01:36 +00:00
* Abstract Display:: Emacs' Widget for Object Collections.
* Blinking:: How Emacs shows the matching open parenthesis.
* Usual Display:: The usual conventions for displaying nonprinting chars.
* Display Tables:: How to specify other conventions.
* Beeping:: Audible signal to the user.
* Window Systems:: Which window system is being used.
1994-03-21 07:49:21 +00:00
Operating System Interface
* Starting Up:: Customizing Emacs start-up processing.
* Getting Out:: How exiting works (permanent or temporary).
* System Environment:: Distinguish the name and kind of system.
* User Identification:: Finding the name and user id of the user.
* Time of Day:: Getting the current time.
* Time Conversion:: Converting a time from numeric form to a string, or
to calendrical data (or vice versa).
2005-08-11 19:59:29 +00:00
* Time Parsing:: Converting a time from numeric form to text
and vice versa.
* Processor Run Time:: Getting the run time used by Emacs.
* Time Calculations:: Adding, subtracting, comparing times, etc.
* Timers:: Setting a timer to call a function at a certain time.
2006-08-20 12:10:04 +00:00
* Idle Timers:: Setting a timer to call a function when Emacs has
been idle for a certain length of time.
2006-07-31 18:34:36 +00:00
* Terminal Input:: Accessing and recordingo terminal input.
* Terminal Output:: Controlling and recording terminal output.
* Sound Output:: Playing sounds on the computer's speaker.
* X11 Keysyms:: Operating on key symbols for X Windows
1994-03-21 07:49:21 +00:00
* Batch Mode:: Running Emacs without terminal interaction.
* Session Management:: Saving and restoring state with X Session Management.
1994-03-21 07:49:21 +00:00
Starting Up Emacs
1999-09-17 06:59:04 +00:00
* Startup Summary:: Sequence of actions Emacs performs at start-up.
1994-03-21 07:49:21 +00:00
* Init File:: Details on reading the init file (@file{.emacs}).
* Terminal-Specific:: How the terminal-specific Lisp file is read.
1999-09-17 06:59:04 +00:00
* Command-Line Arguments:: How command line arguments are processed,
1994-03-21 07:49:21 +00:00
and how you can customize them.
Getting out of Emacs
* Killing Emacs:: Exiting Emacs irreversibly.
* Suspending Emacs:: Exiting Emacs reversibly.
Tips and Conventions
1994-03-21 07:49:21 +00:00
* Coding Conventions:: Conventions for clean and robust programs.
2005-08-11 19:59:29 +00:00
* Key Binding Conventions:: Which keys should be bound by which programs.
* Programming Tips:: Making Emacs code fit smoothly in Emacs.
* Compilation Tips:: Making compiled code run fast.
* Warning Tips:: Turning off compiler warnings.
* Documentation Tips:: Writing readable documentation strings.
* Comment Tips:: Conventions for writing comments.
* Library Headers:: Standard headers for library packages.
1994-03-21 07:49:21 +00:00
GNU Emacs Internals
* Building Emacs:: How to preload Lisp libraries into Emacs.
* Pure Storage:: A kludge to make preloaded Lisp functions sharable.
* Garbage Collection:: Reclaiming space for Lisp objects no longer used.
* Memory Usage:: Info about total size of Lisp objects made so far.
1994-03-21 07:49:21 +00:00
* Writing Emacs Primitives:: Writing C code for Emacs.
* Object Internals:: Data formats of buffers, windows, processes.
1994-03-21 07:49:21 +00:00
Object Internals
* Buffer Internals:: Components of a buffer structure.
* Window Internals:: Components of a window structure.
* Process Internals:: Components of a process structure.
@end menu
@include intro.texi
@include objects.texi
@include numbers.texi
@include strings.texi
@include lists.texi
@include sequences.texi
1999-09-17 06:59:04 +00:00
@include hash.texi
1994-03-21 07:49:21 +00:00
@include symbols.texi
@include eval.texi
@include control.texi
@include variables.texi
@include functions.texi
@include macros.texi
1998-02-28 01:53:53 +00:00
@include customize.texi
1994-03-21 07:49:21 +00:00
@include loading.texi
@include compile.texi
1998-04-22 02:41:08 +00:00
@include advice.texi
1994-03-21 07:49:21 +00:00
1998-04-22 02:41:08 +00:00
@include debugging.texi
1998-02-28 01:53:53 +00:00
@include streams.texi
1994-03-21 07:49:21 +00:00
@include minibuf.texi
@include commands.texi
1998-04-22 02:41:08 +00:00
@include keymaps.texi
1998-02-28 01:53:53 +00:00
@include modes.texi
1994-03-21 07:49:21 +00:00
@include help.texi
@include files.texi
1998-04-22 02:41:08 +00:00
@include backups.texi
1998-02-28 01:53:53 +00:00
@include buffers.texi
1994-03-21 07:49:21 +00:00
@include windows.texi
@include frames.texi
1998-02-28 01:53:53 +00:00
1998-04-22 02:41:08 +00:00
@include positions.texi
1994-03-21 07:49:21 +00:00
@include markers.texi
@include text.texi
1998-02-28 01:53:53 +00:00
@include nonascii.texi
1998-04-22 02:41:08 +00:00
@include searching.texi
1994-03-21 07:49:21 +00:00
@include syntax.texi
@include abbrevs.texi
@include processes.texi
1998-02-28 01:53:53 +00:00
1994-03-21 07:49:21 +00:00
@include display.texi
1999-10-27 09:26:40 +00:00
@include os.texi
1994-03-21 07:49:21 +00:00
@c MOVE to Emacs Manual: include misc-modes.texi
@c appendices
@c REMOVE this: include non-hacker.texi
1999-10-05 23:26:05 +00:00
@include anti.texi
2000-05-23 15:39:40 +00:00
@include doclicense.texi
@include gpl.texi
1994-03-21 07:49:21 +00:00
@include tips.texi
@include internals.texi
@include errors.texi
@include locals.texi
@include maps.texi
@include hooks.texi
@include index.texi
@ignore
1998-02-28 01:53:53 +00:00
@node New Symbols, , Index, Top
1998-05-19 03:45:57 +00:00
@unnumbered New Symbols Since the Previous Edition
1998-02-28 01:53:53 +00:00
1998-04-22 02:41:08 +00:00
@printindex tp
@end ignore
1998-02-28 01:53:53 +00:00
1994-03-21 07:49:21 +00:00
@bye
These words prevent "local variables" above from confusing Emacs.
2003-09-01 15:45:59 +00:00
@ignore
arch-tag: f7e9a219-a0e1-4776-b631-08eaa1d49b34
@end ignore