Excellent Free Tutorials to Learn Emacs Lisp

Emacs Lisp is a dialect of the Lisp programming language. Lisp (derives from “LISt Processing”) is one of the oldest programming languages. It was invented in 1958, with the language being conceived by John McCarthy and is based on his paper “Recursive Functions of Symbolic Expressions and Their Computation by Machine”. Over the years, Lisp has evolved into a family of programming languages.

Most of the Emacs integrated environment is written in the programming language called Emacs Lisp.

Although Emacs Lisp is usually thought of in association only with Emacs, it is a full computer programming language. You can use Emacs Lisp as you would any other programming language.

Here’s our recommended free tutorials to learn Emacs Lisp (elisp). If you want a more general introduction to Lisp, read our recommended free tutorials to learn Lisp.


1. An introduction to Emacs Lisp by Christian Johansen

This article is intended to help you get started with Lisp and extending Emacs using Emacs Lisp (elisp).

Read the tutorial


2. Learn elisp in Y minutes by Bastien Guerry

This gives an introduction to Emacs Lisp in 15 minutes.

Read the tutorial


3. Emacs Lisp Guide by Chris Done

This guide is targeted at programmers who are too busy to read through long tutorials and manuals, but who want to extend their editor.

Read the tutorial


4. Emergency Elisp by Steve Yegge

Emergency Elisp is an introduction to how to write C, Java or JavaScript code in Emacs Lisp, more or less.

Read the tutorial


5. Emacs Lisp by Mitch Fincher

This is a 54 point summary of the language. It’s useful as a reference.

Read the tutorial


All tutorials in this series:

Free Programming Tutorials
Java General-purpose, concurrent, class-based, object-oriented, high-level language
C General-purpose, procedural, portable, high-level language
Python General-purpose, structured, powerful language
C++ General-purpose, portable, free-form, multi-paradigm language
C# Combines the power and flexibility of C++ with the simplicity of Visual Basic
JavaScript Interpreted, prototype-based, scripting language
PHP PHP has been at the helm of the web for many years
Ruby General purpose, scripting, structured, flexible, fully object-oriented language
Assembly As close to writing machine code without writing in pure hexadecimal
Swift Powerful and intuitive general-purpose programming language
Groovy Powerful, optionally typed and dynamic language
Go Compiled, statically typed programming language
Pascal Imperative and procedural language designed in the late 1960s
Perl High-level, general-purpose, interpreted, scripting, dynamic language
R De facto standard among statisticians and data analysts
COBOL Common Business-Oriented Language
Scala Modern, object-functional, multi-paradigm, Java-based language
Fortran The first high-level language, using the first compiler
Scratch Visual programming language designed for 8-16 year-old children
Lua Designed as an embeddable scripting language
Logo Dialect of Lisp that features interactivity, modularity, extensibility
Rust Ideal for systems, embedded, and other performance critical code
Lisp Unique features – excellent to study programming constructs
Ada ALGOL-like programming language, extended from Pascal and others
Haskell Standardized, general-purpose, polymorphically, statically typed language
Scheme General-purpose, functional, language descended from Lisp and Algol
Prolog General purpose, declarative, logic programming language
Forth Imperative stack-based programming language
Clojure Dialect of the Lisp programming language
Julia High-level, high-performance language for technical computing
SQL Access and manipulate data held in a relational database management system
Erlang General-purpose, concurrent, declarative, functional language
VimL Powerful scripting language of the Vim editor
OCaml General-purpose, powerful, high-level language
Awk Versatile language designed for pattern scanning and processing
Racket Platform for programming language design and implementation
BASIC Family of general-purpose, high-level programming languages
CoffeeScript A very succinct programming language that transcompiles into JavaScript
LaTeX Professional document preparation system and document markup language
Elixir Relatively new functional language that runs on the Erlang virtual machine
Dart Client-optimized programming language for fast apps
ABAP Advanced Business Application Programming
F# General purpose, strongly typed, multi-paradigm language. Part of ML
Chapel Parallel-programming language in development at Cray Inc.
Dylan Multi-paradigm language, supports functional & object-oriented programming
D General-purpose systems programming language with a C-like syntax
Solidity Object-oriented, high-level language for implementing smart contracts
XML Set of rules for defining semantic tags that describe the structure and meaning
Vala Object-oriented language with a self-hosting compiler that generates C code
ECMAScript Best known as the language embedded in web browsers
Kotlin Statically typed, general-purpose programming language with type inference
TypeScript Strict syntactical superset of JavaScript, adding optional static typing
Markdown Plain text formatting syntax designed to be easy-to-read and easy-to-write
Pike Interpreted, general-purpose, high-level, cross-platform, dynamic language
HTML HyperText Markup Language
Factor Dynamic stack-based language
Objective-C General purpose language which is a superset of C
Standard ML One of the two main dialects of the ML language
Alice Educational language with an integrated development environment
Agda Dependently typed functional language based on intuitionistic type theory
Icon High-level, general-purpose language
PureScript Small strongly, statically typed language with expressive types
Tcl Dynamic language based on concepts of Lisp, C, and Unix shells
Eiffel Object-oriented language
ClojureScript Compiler for Clojure that targets JavaScript
QML Hierarchical declarative language for user interface layout with a syntax to JSON
VHDL Very High Speed Integrated Circuit Hardware Description Language
OpenCL Open Computing Language
Elm Functional language that compiles to JavaScript
Haml HTML Abstraction Markup Language
J Array programming language based primarily on APL
LabVIEW Designed to enable domain experts to build power systems quickly
Hack For the HipHop Virtual Machine (HHVM), created as a dialect of PHP
Imba Full-stack language that compiles to performant JavaScript
V Statically typed compiled language to build maintainable software
PostScript Page description language in electronic and desktop publishing
Arduino Inexpensive, flexible, open source microcontroller platform
Nim Statically typed compiled systems language with syntax resembling Python
Emacs Lisp A dialect of the Lisp programming language.

Share this article