EmacsWiki: Emacs Lisp Reference (original) (raw)

The Emacs Lisp Reference Manual (also known as the elisp or lispref) manual, is documentation about the language used to extend Emacs, EmacsLisp.

GnuEmacs has an EmacsManual, an EmacsLispIntro, and an EmacsLispReference. Starting with Emacs 22, all three manuals are included.

XEmacs has an XEmacs User’s Manual, an XEmacs Lisp Reference Manual, a introduction to XEmacs (“Getting Started With XEmacs”), an EmacsLisp introduction (“Programming in Emacs Lisp, an Introduction”), and an XEmacs Internals Manual, all distributed with XEmacs.

The best way is to simply use the manual within Emacs. Then you can simply use the Help menu or type C-h i to view it, along with all the other documentation in the info system. If your Emacs doesn’t come with the Emacs Lisp Reference Manual, you will have to download it. All manuals are available online in various formats.

For GNU Emacs:

To get the manual into Emacs on Debian GNU/Linux or when you can’t see an Elisp section after doing M-x info, or if you get the error “Info file elisp does not exist”, then you need to:

  1. Activate a non-free section in your /etc/apt/sources.list
  2. Install the emacs23-common-non-dfsg package (or the one for your emacs version)

The manual has license GFDL and thus the DFSG (Debian Free Software Guidelines) don’t consider it free.

You can link to the index entries in the manual using the Manual prefix. Command, Variable, and Concept index entries can be linked. If the entries contain punctuation or whitespace characters, you will need to put them in double square brackets:

The XEmacs Lisp Reference Manual, as well as all the other manuals, are available at:

According to DanielLaLiberte, the history of the GNU Emacs Lisp Reference Manual:

Starting with Emacs 17, and transitioning to Emacs 18, I was trying to develop a rather substantial extension and I was forced to learn what I could from the very limited doc strings, and the source itself. I started putting together a document for my own use of all the functions, variables, etc, and at some point started sharing this with others. I didn’t think I had time to really finish this documentation, but I recall announcing my offer to coordinate the efforts of others if they would help out.

With a group of about a dozen volunteers, we hobbled along for a year or so, and then we learned that Bil Lewis had offered to write up a first draft of the entire manual, which he then did in cooperation with our group. I received his work as it was being written and edited it, reorganizing the material substantially over the next year or two. My graduate research work was delayed as a result, but I was having fun, getting into it and receiving the reward of compliments from grateful readers. I’d have to say that most of the first year of work was overwritten a couple times by this process, so we probably dropped some of the minor acknowledgments as well.

Although I had a major hand in every chapter, the one on the Edebug source-level debugger was all mine, of course, since I had written the software. Having mastered everything about the language and environment, it became obvious to me in a flash how to build Edebug, and the first version was hacked out in a couple weeks. This little diversion turned into a major project, and a new subject for my masters research.

Shortly before Emacs 19 started to come out, I was finishing up the indexing (including a very useful permuted index) and we were “done” and then RMS wanted to take control. After a few more months of his reediting, cleaning up all my rampant use of passive voice and such, it was published in a two-volume book. Later editions by RMS and others incorporated the Emacs 19 features. I got back into my research and lost touch.


CategoryDocumentation