Next Previous Contents

1. Introduction

1.1 Copyright

Copyright © 1998 - 2001 Jeremy D. Zawodny. Permission to distribute and modify this document is granted under the GNU General Public License. An on-line copy is available at

1.2 Audience and Intent

This document is targeted at the Linux user interested in learning a bit about Emacs and trying it out. This actually began as the outline of a brief tutorial that I was to give at a Toledo Area Linux User Group meeting: It has since grown a bit as the result of the helpful feedback I have received from the community. See the Credits section for details.

Having said that, there is virtually nothing Linux-specific in this document. It applies to virtually all flavors of Unix and even Emacs running on Microsoft Windows. But since this document is part of the Linux Documentation Project, I make a point of saying that it was developed for Linux users--because it was.

And finally, those of you who prefer the name GNU/Linux to simply ``Linux'' (read to see why one might) are welcomed to mentally substitute GNU/Linux for all occurrences of Linux in this document. While I don't disagree with the reasoning and spirit behind that idea, I don't feel compelled to write GNU/Linux.

1.3 What is Emacs?

Emacs is different things to different people. Depending who you ask, you'll could get any of the following responses:

But for our purposes, let's just pretend it's a text editor--an amazingly flexible text editor. We'll dig deeper into the question later on. Emacs was written by Richard Stallman (founder of the Free Software Foundation: and the GNU project and he still maintains it today.

Emacs is one of the most popular and powerful text editors used on Linux (and Unix). It is second in popularity only to vi. It is known for it huge feature set, ability to be easily customized, and lack of bugs. It's large feature set and ability to be customized actually are the result of how Emacs was designed and implemented. Without going into all the details, I'll simply point out that Emacs isn't ``just an editor''. It is an editor written mostly in the programming language Lisp. At the core of Emacs is a full-featured Lisp interpreter written in C. Only the most basic and low-level pieces of Emacs are written in C. The majority of the editor is actually written in Lisp. So, in a sense, Emacs has an entire programming language ``built in'' which you can use to customize, extend, and change its behavior.

Emacs is also one of the oldest editors around. The fact that is has been used by thousands of programmers over the past 20 (?) years means that there are many add-on packages available. These add-ons allow you to make Emacs do things that Stallman had probably never dreamed possible when he first began work on Emacs. More on that in a later section.

There are many other web sites and documents which give a better overview of Emacs, its history, and related matters. Rather than attempt to reproduce much of that here, I suggest that you check out some of the places listed in Section Other Resources section of this document.

Ports and Versions

It's worth pointing out that there are actually two different Emacs editors: GNU Emacs and XEmacs. Both come from the same heritage and share most of the same features. This document focuses on GNU Emacs (version 20.3, specifically) but much of what you'll read here will apply just as well to XEmacs and earlier versions of GNU Emacs. Throughout this document I will simply refer to ``Emacs''. When I do so, bear that in mind.

Getting Emacs

Getting Emacs is easy. If you are using a popular Linux distribution like Debian, RedHat, Slackware, or any of the others, Emacs is probably an optional package that you can install from your distribution media. If not, you can get the Emacs source code and compile it yourself. Visit the GNU web site for the exact location:

Next Previous Contents