GNU Emacs Lisp Reference Manual

GNU Emacs Lisp Reference Manual is available in several formats. Most of the GNU Emacs text editor is written in the programming language called Emacs Lisp. You can write new code in Emacs Lisp and install it as an extension to the editor. However, Emacs Lisp is more than a mere “extension language”; it is a full computer programming language in its own right. You can use it as you would any other programming language.


Because Emacs Lisp is designed for use in an editor, it has special features for scanning and parsing text as well as features for handling files, buffers, displays, subprocesses, and so on. Emacs Lisp is closely integrated with the editing facilities; thus, editing commands are functions that can also conveniently be called from Lisp programs, and parameters for customization are ordinary Lisp variables.

This manual attempts to be a full description of Emacs Lisp. For a beginner’s introduction to Emacs Lisp, see An Introduction to Emacs Lisp Programming, by Bob Chassell, also published by the Free Software Foundation. This manual presumes considerable familiarity with the use of Emacs for editing; see The GNU Emacs Manual for this basic information.

Table of Contents

  • Introduction – Introduction and conventions used.
  • Lisp Data Types – Data types of objects in Emacs Lisp.
  • 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.
  • Hash Tables – Very fast lookup-tables.
  • 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.
  • Customization – Writing customization declarations.
  • Loading – Reading files of Lisp code into Lisp.
  • Byte Compilation – Compilation makes programs run faster.
  • Advising Functions – Adding to the definition of a function.
  • Debugging – Tools and tips for debugging Lisp programs.
  • Read and Print – Converting Lisp objects to text and back.
  • 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.
  • Frames – Making multiple system-level windows.
  • 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.
  • Non-ASCII Characters – Non-ASCII text in buffers and strings.
  • 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.
  • Display – Features for controlling the screen display.
  • System Interface – Getting the user id, system type, environment variables, and other such things.

Book Details

Author(s): Bil Lewis, Dan LaLiberte, Richard Stallman and the GNU Manual Group
Format(s): HTML, Text, PDF, PostScript
File size: 5.00 MB
Number of pages: 1025
Link: Download or Read online.

Leave a Reply