Emacs Beginner HOWTO
Emacs Beginner HOWTO
Table of Contents
Emacs Beginner's HOWTO...............................................................................................................................1
Jeremy D. Zawodny, jzawodn@[Link]..............................................................................................1
[Link] ..........................................................................................................................................1
[Link] Emacs ....................................................................................................................................1
[Link] Modes........................................................................................................................................1
[Link] Emacs .............................................................................................................................1
[Link] Packages .................................................................................................................................2
[Link] Resources ...................................................................................................................................2
[Link] ..................................................................................................................................................2
1. Introduction .........................................................................................................................................2
1.1 Copyright...........................................................................................................................................2
1.2 Audience and Intent...........................................................................................................................2
1.3 What is Emacs?..................................................................................................................................3
Ports and Versions......................................................................................................................4
Getting Emacs.............................................................................................................................4
2. Running Emacs ...................................................................................................................................4
2.1 Starting & Quitting Emacs.................................................................................................................4
What you'll see............................................................................................................................5
The Menu Bar.............................................................................................................................5
The Status Bar and Minibuffer.................................................................................................5
2.2 Some Terminology............................................................................................................................6
Buffers & Files............................................................................................................................6
Point & Region...........................................................................................................................6
Windows.....................................................................................................................................6
Frames.........................................................................................................................................7
2.3 Keyboard Basics................................................................................................................................7
Command Keys (Meta, Esc, Control, and Alt)...........................................................................7
Moving Around in a Buffer........................................................................................................8
Essential Commands...................................................................................................................8
Tab Completion..........................................................................................................................9
2.4 Tutorial, Help, & Info......................................................................................................................10
3. Emacs Modes.....................................................................................................................................10
3.1 Major vs. Minor Modes...................................................................................................................10
3.2 Programming Modes........................................................................................................................11
C/C++/Java...............................................................................................................................12
Perl............................................................................................................................................12
Python.......................................................................................................................................12
Others........................................................................................................................................12
3.3 Authoring.........................................................................................................................................13
SpellChecking (ispell mode)..................................................................................................13
HTML (htmlhelper mode)......................................................................................................13
TeX (texmode)........................................................................................................................13
SGML (sgmlmode).................................................................................................................13
3.4 Other Modes.....................................................................................................................................14
Version Control (vc mode).......................................................................................................14
Shell Mode................................................................................................................................14
Telnet and FTP..........................................................................................................................14
i
Emacs Beginner's HOWTO
Table of Contents
Man...........................................................................................................................................14
AngeFTP.................................................................................................................................15
4. Customizing Emacs ..........................................................................................................................15
4.1 Temporary Customization...............................................................................................................16
Variable Assignments...............................................................................................................16
File Associations.......................................................................................................................17
4.2 Using a .emacs File..........................................................................................................................18
4.3 The Customize Package...................................................................................................................19
4.4 X Windows Display.........................................................................................................................19
5. Popular Packages ..............................................................................................................................20
5.1 VM (Mail)........................................................................................................................................20
5.2 Gnus (Mail and News).....................................................................................................................20
5.3 BBDB (A rollodex)..........................................................................................................................21
5.4 AucTeX (another TeX mode)..........................................................................................................21
6. Other Resources ................................................................................................................................22
6.1 Books...............................................................................................................................................22
Learning GNU Emacs...............................................................................................................22
Writing GNU Emacs Extensions..............................................................................................22
Programming in Emacs Lisp: An Introduction.........................................................................23
The GNU Emacs Lisp Reference Manual................................................................................23
6.2 Web Sites.........................................................................................................................................23
EMACSulation..........................................................................................................................24
6.3 Newsgroups......................................................................................................................................24
6.4 Mailing Lists....................................................................................................................................24
6.5 The Emacs Lisp Archive..................................................................................................................24
7. Credits ...............................................................................................................................................25
ii
Emacs Beginner's HOWTO
This document introduces Linux users to the Emacs editor. It assumes minimal familiarity with vi or a
similar editor. The latest version of this document is usually available from
[Link]
[Link]
1.1 Copyright
1.2 Audience and Intent
1.3 What is Emacs?
[Link] Emacs
2.1 Starting & Quitting Emacs
2.2 Some Terminology
2.3 Keyboard Basics
2.4 Tutorial, Help, & Info
[Link] Modes
3.1 Major vs. Minor Modes
3.2 Programming Modes
3.3 Authoring
3.4 Other Modes
[Link] Emacs
4.1 Temporary Customization
4.2 Using a .emacs File
4.3 The Customize Package
4.4 X Windows Display
[Link] Packages
5.1 VM (Mail)
5.2 Gnus (Mail and News)
5.3 BBDB (A rollodex)
5.4 AucTeX (another TeX mode)
[Link] Resources
6.1 Books
6.2 Web Sites
6.3 Newsgroups
6.4 Mailing Lists
6.5 The Emacs Lisp Archive
[Link]
Next Previous Contents Next Previous Contents
1. Introduction
1.1 Copyright
Copyright 1998 1999 Jeremy D. Zawodny. Permission to distribute and modify this document is granted
under the GNU General Public License. An online copy is available at [Link]
Having said that, there is virtually nothing Linuxspecific 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 usersbecause it was.
[Link] Packages 2
Emacs Beginner's HOWTO
And finally, those of you who prefer the name GNU/Linux to simply ``Linux'' (read
[Link] 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.
Text Editor
Mail Client
News Reader
Word Processor
Religion
Integrated Development Environment
Whatever you want it to be!
But for our purposes, let's just pretend it's a text editoran 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:
[Link] and the GNU project [Link] 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 fullfeatured Lisp
interpreter written in C. Only the most basic and lowlevel 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 addon packages available. These addons 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.
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:
[Link]
2. Running Emacs
Once you've seen Emacs, you need to know how to exit. The keystrokes for leaving Emacs are Cx Cc.
The Cx notation means hold down the Ctrl key and press x. In this case, you'll then need to hold down
Ctrl and press c to finish the task.
The keystrokes used in Emacs will likely seem odd, foreign, and maybe even uncomfortable to you at
firstespecially if you're a vi user. Unlike vi, Emacs doesn't have separate modes for editing text and
issuing commands.
++
|Buffers Files Tools Edit Search Mule Help |
| |
|Welcome to GNU Emacs, one component of a Linuxbased GNU system. |
| |
| |
| |
| ... |
| |
|1:F1 *scratch* (Lisp Interaction)L1All|
|For information about the GNU Project and its goals, type Ch Cp. |
++
NOTE: Emacs will usually fill the entire screen/window. I've shrunk the above example to save space here.
You will also see a welcome message in Emacs when you first start it. I omitted that as well and substituted
``...'' instead. The welcome message simply identifies the exact version of Emacs you are using as well as
pointing you to the online help and related items.
The bottommost line is called the minibuffer. It is separated from the main buffer by the status bar we just
discussed. You can think of the minibuffer as the Emacs ``commandline''. It is where commands that you
give Emacs appear and it is where status messages are printed in response to things you do.
You'll find that what I've called the status bar is usually referred to as the mode line in Emacs related
documentation. It is where Emacs displays information about the current modes(s) you may be using as well
as things like the current date and time, line number, file size, and almost anything else you might want to see
there.
As a consequence, you will see the term ``buffer'' used in Emacs documentation, modes, packages, and so on.
Just realize that buffer means ``a copy of the file that is currently in memory.'' Oh, it's worth pointing out that
a buffer doesn't always have to refer to a specific file on disk. Often times Emacs will create buffers as the
result of commands you run. Such buffers may contain the result of the command, a list of selections to pick
from, and so on.
Like many modern editors, Emacs allows to perform operations (indent, spellcheck, reformat, cut, copy,
paste, ...) on a section of the current buffer. You can highlight (or ``mark'') a block of text using the keyboard
or mouse and then perform operations on just the selected block of text. In Emacs, that block of text is called
a region.
Windows
Okay, this will be a bit confusing to anyone who has ever used a GUI interface before. Just remember that
Emacs was developed long before GUI interfaces and window managers were popular.
A window in Emacs is an area of the screen in which a buffer is displayed. When Emacs is first started, you
have one window on your screen. Some Emacs functions (such as the help and documentation) often
[temporarily] open up additional windows in your Emacs screen.
Emacs windows have nothing to do with X windows in the GUI sense. You can open up additional X
windows to display Emacs buffers, maybe to compare two files side by side. Those new X windows are
referred to as frames in Emacs lingo. Read on.
Frames
In Emacs, a frame is a separate X window in which an Emacs buffer is displayed. But both are part of the
same Emacs session. The behavior is somewhat (but not too much) like what happens if you hit Alt+N in
Netscape Navigator.
If you're a vi user, the notion of using the k, j, l, h keys to move up a line, down a line, forward by a
character, and backward by a character probably took some getting used to. In fact, it might have taken you a
few hours or even weeks of practice before you could comfortably navigate a file using the various key
combinations available in vi.
Emacs is no different. There are different keystrokes and commands to learn. Just like vi, you only need to
master the basics to get a lot of work done. Then, as time goes on, you can slowly expand your knowledge
and find faster ways of doing things.
The keys that Emacs makes the most use of are usually abbreviated in the documentation as C (for Control or
Ctrl) and M for (Meta). While most modern PC keyboards have one or more keys labeled Ctrl few have one
labeled Meta. You'll want to mentally substitute either Esc or Alt for the Meta key. In most standard
configurations, both Esc and Alt do essentially the same thing.
So when you see a reference in any Emacs related documentation to Cx f it means ``press controlx and
then f.'' And if you see a reference to something like Mx shell is means ``press altx and type the word
Frames 7
Emacs Beginner's HOWTO
shell''.
A very useful command for beginners is Mx apropos or Ch a. apropos will search the Emacs online
documentation for all functions and search for the regular expression you type. This is a great way to discover
all commands related to frames. Simply Ch a and then frame.
Keystrokes Action
Cp Up one line
Cn Down one line
Cf Forward one character
Cb Backward one character
Ca Beginning of line
Ce End of line
Cv Down one page
Mv Up one page
Mf Forward one word
Mb Backward one word
M< Beginning of buffer
M> End of buffer
Cg Quit current operation
And, as you might expect, the cursor keys (or arrow keys) usually work just as you'd expect. Your
Backspace may not. That's another story. :(
Essential Commands
Okay, now that you know how to move around within a buffer what about opening and saving files? Search?
Here are some basic commands.
Before we jump straight to those commands, I need to briefly point out how this works.
All ``command keystrokes'' in Emacs (those that are Mx something or Csomething) are actually just
shortcuts to functions which are part of Emacs. You can call any of those functions by typing Mx
functionname and hitting Enter. You can also use the keyboard shortcut for that function (if it has
one).
For example, the Emacs function which saves a buffer to disk is called savebuffer. By default it is also
bound to Cx Cs. So, you can either use they shortcut to save the current buffer, or you could type Mx
All of the most common functions have keyboard shortcuts by default. Some of them are listed below.
As you try many of those functions, you'll notice that many will prompt you for input. They will always to do
in the minibuffer. This is similar to using the : commands in vi or most commands that you'd use within
your favorite Unix shell.
Emacs has literally hundreds of builtin functions available. The list above is a tiny sample that represents
those that I use regularly. See the online help for a more complete listing of the available functions and
more complete documentation on those I mentioned above.
Tab Completion
Like many popular Unix shells (bash, csh, tcsh, ...) Emacs offers command completion via the Tab key. In
fact, the command completion in bash was modeled after that in Emacs, so if you use that feature in bash
you'll be right at home.
As an example, try Mx search and then hit Tab. Emacs will append a hyphen to indicate that there are
several possible completions but they all have a hyphen as the next character. Hit Tab once more and Emacs
will display a list of the possible matches for you to choose from. Notice that it does so in a new window. It
temporarily splits your display into two windows: one which contains the buffer you were editing and the
other contains the list of possible completions for ``search''. You may hit Cg to exit out of the selection
process and close the new window.
Tab Completion 9
Emacs Beginner's HOWTO
I highly recommend that you spend some time going through the tutorial if you plan on making a serious
effort to learn Emacs. As shown in the table above, you can enter the tutorial via Ch t. The tutorial is
selfguided and aimed at folks who are just getting started with Emacs.
If you are running Emacs in X, you will see that the rightmost menu on the menu bar is labeled Help. As you
explore the Help menu notice that some items have keyboard shortcuts and those are listed right in the menu.
Finally, to see the volume of documentation available with Emacs, you should try Mx info or Ch
i which launches Info, the Emacs documentation browser.
NextPreviousContentsNextPreviousContents
3. Emacs Modes
Emacs modes are different behaviors and features which you can turn on or off (or customize, of course) for
use in different circumstances. Modes are what make one editor (Emacs) equally useful for writing
documentation, programming in a variety of languages (C, C++, Perl, Python, Java, and many more), creating
a home page, sending EMail, reading Usenet news, keeping track of your appointments, and even playing
games.
Emacs modes are simply libraries of Lisp code that extend, modify, or enhance Emacs is some way.
Only one major mode can be active at a given time. Many minor modes can be active at a given time. Major
modes tend to be language or taskspecific, while minor modes are smaller and less specific utilities that cut
across many tasks.
Sounds kind of abstract, so let's try an example. There's a mode that I use quite often when I'm writing plain
old text files. It's called textmode. This mode was designed for writing free form text like a README
file. It understands how to identify words and paragraphs and generally makes sure that it does what I expect
when I use the normal navigation keystrokes.
When I'm writing text for human consumpiton, I typically want it to look good. It should be properly
wordwrapped to a reasonble value and so on. To enable word wrapping I just turn on the
autofill minor mode. This mode tries to do the Right Thing when I'm typing along and hit the end of
the line. The fact that it is a minor mode means that it can work with several different major modes. My
notion of the ``Right Thing'' to do when I hit the end of the line is different when I'm in textmode than it
is when I'm in javamode for example. I don't want my Java code to be wordwrapped as if was English
text. But I do want the blocks of comments in my Java code to be word wrapped! autofill mode is
smart enough to figure that out.
The authors of various Emacs modes have done a great job of making sure that things that should work as
minor modes are minor modes.
If you look back at that ASCII sketch of an Emacs screen, you'll notice that the mode line identifies the
mode(s) that Emacs is in. In that case it was in a mode called ``Lisp Interaction'' which is the default mode.
It's really only useful if you're going to be writing Lisp code. (But since most of Emacs is written in Lisp,
why not?)
Most programming modes share some common characteristics. Usually, they'll do some or all of the
following:
In addition, there are some nonlanguage specific modes that help out with tasks that are common to
programming in many languages. Things like interfacing to your version control software, automatically
adding comments to your code, creating Makefiles, updating Change Logs and so on.
When you add all these modes together and consider the maturity and stability of the Emacs code, it
compares quite nicely to commerically marketed Integrated Development Environments (IDEs) for languages
like C++ and Java. And, of course, it's free.
C/C++/Java
Because the syntax of C, C++, and Java are quite similar, there is one Emacs mode which handles all three
languages (as well as ObjectiveC and IDL). It's a very mature and complete package and it included in the
Emacs distribution. This mode is called either ccmode or CC Mode.
Perl
There are actually two modes for editing Perl code in Emacs. The first is called perlmode (as you would
expect) and the second is cperlmode. I don't have a good grasp of this history and why there are two
modes (the docs don't say), but it would appear that perlmode was the original mode for editing Perl code
in Emacs. It seems to have fewer features than cperlmode and is lacking the ability to recognize some of
Perl's fancier langugage constructs.
Personally, I use and recommend cperlmode which seems to be quite actively maintained and has just
about every feature I could ever want. You can find the latest release here:
[Link]
But don't take my word for it. Try them both and pick the one that best meets your needs.
Python
Python (another very popular scripting language) has an Emacs mode available for it as well. As far as I can
tell, it is not distributed with GNU Emacs but it distributed with XEmacs. It works quite well in both editors,
though.
You can get pythonmode from the official Python web site [Link]
Others
There are many many other editing modes available to help out programmers. Such modes help out with
things like:
C/C++/Java 12
Emacs Beginner's HOWTO
And much more. See the last section of this document for more information on finding other modes and
addins.
3.3 Authoring
Fancy Emacs modes are not limited to just those who write code. Folks writing documentation (of any sorts)
can also benefit from a wide selection of Emacs modes.
As its name suggests, htmlhelpermode provides lots of things to help out those folks who still write
HTML by handthe old fashioned way.
TeX (texmode)
When you're writing documents in TeX, it's often helpful to get Emacs to add some color and highlight the
backslashes, braces and other charcters. texmode takes care of that for you.
Though I don't write much directly in TeX anymore, when I did this mode proved to be quite helpful in
making my TeX source a bit more readable.
SGML (sgmlmode)
The document you're now reading was written in SGML (and probably converted to the format you're reading
it in). sgmlmode provides all the basics for SGML documents: validation, highlighting, forwardtag,
backwardtag, and much more. It is a standard part of Emacs.
3.3 Authoring 13
Emacs Beginner's HOWTO
Shell Mode
Why switch to another X window or virtual console just to run a few shell commands? Do it from within
Emacs and save yourself the trouble. :)
Mx shell will launch a shell within an Emacs buffer. You can do most things with this buffer that you
could do with a normal shell prompt (except for running full screen programs like vi or pine) because
Emacs is talking to your real shell behind the scenes.
This is a standard part of Emacs, too, so you'll find it documented in the Emacs docs.
Just like running a shell inside of Emacs, you can telnet and ftp. Try Mx telnet or Mx ftp to
experience it for yourself. See the documentation for all the gory details.
Man
Why switch to another X window or virtual console just to read a manual page? Do it from within Emacs and
save yourself the trouble. (I promise. I'll stop.)
Just like running a shell inside of Emacs, you can read manual pages. Try Mx man to experience it for
yourself. See the documentation for more.
AngeFTP
To quote the angeftp documentation:
This package attempts to make accessing files and directories using FTP from within GNU
Emacs as simple and transparent as possible. A subset of the common filehandling routines
are extended to interact with FTP.
That means you can treat files on remote machines as if there were local. So if you need to edit a file on a
different computer, just tell Emacs to open it (using a slightly different path syntax) and it takes care of all the
details of logging in and retrieving the file. Then, when you save the file via Cx Cs,
angeftp intercepts the save and writes the file back to the remote machine.
The slightly different path syntax goes like this... A file named ``myfile'', in a ``user'''s directory, on a
machine named ``[Link]'' can be opened by opening (Cx f) the file:
/user@[Link]:~user/myfile
This, also, is a standard part of the Emacs distribution so you can find it documented in the Emacs
documentation.
NextPreviousContentsNextPreviousContents
4. Customizing Emacs
Virtually all Emacs customization is done via Lisp code. You can modify variables which influence the way
Emacs operates or you can add new functions to Emacs (or override existing functionsreplacing them with
your own.
AngeFTP 15
Emacs Beginner's HOWTO
Variable Assignments
The easiest customizations are accomplished by changing the value of a variable in Emacs. The list code to
do this looks like this:
Where variablename is the name of the variable and newvalue is the value you'd like to give the
variable. (In Lispspeak, you're binding a variable to a value.) The setq function in lisp is analagous to the
assignment operators (ususally =) in other programming languages.
NOTE: I'm glossing over many details here for the sake of simplicity. You may also see me or others use the
Lisp functions set and even setqdefault. If you're really curious, feel free to look them up in an
Emacs Lisp reference.
(setqdefault transientmarkmode t)
The variable transientmarkmode controls whether or not a region becomes highlighted when I mark
it. In many GUI applications, if you click and drag the mouse to select a range of text it becomes hilighted in
reverse video or some other color. Emacs will do the same thing it the transientmarkmode varible is
set (to a nonnil value).
A WHAT value?
Okay. Brief digression. Most programming languages have some notion of true/false values. In C/C++ a
value is considered true if it is a nonzero value. In Perl, a nonnull or nonzero value is true. In Lisp, the
same idea applies but the names and symbols are different.
True is usually written as t and false (or null) is written as nil. Like in other languages, though, any
nonnill value is considered true.
To get the full description of what transientmarkmode does, you can use the online help. Type
Ch v or Mx describevariable and then transientmarkmode. If you're lazy like me, you
can take advantage of variable name completion using the Tab key. Just type part of the variable name and
hit the Tab key. If you've typed enough of it that Emacs can already uniquely identify it, you'll see the whole
name completed for you.
Another variable that folks often set is fillcolumn. It tells Emacs how wide the screen should be for the
purposes of wordwrapping (and autofillmode respects this value). To set the value to something
absurd, you could type:
But that won't actaully do anything. You need to tell Emacs to evaluate the expression you typed. To do so,
put the point (cursor) at the end of the expression end then type Cx Ce, which calls the function
evallastsexp in case you care. When you do that, noice that 20 (or whatever value you used) is
echoed back to you in the minibuffer at the bottom of the screen. That's just the return value from the
expression you evaluated.
Just to prove that it works, type a sentence or two. If you happen to have autofillmode enabled (you
probably don't), you'll notice the text wrapping at the 20 column mark. Otherwise, after you've typed some
stuff, type Mq which calls the function fillparagraph. It will then perform the word wrapping.
File Associations
You can configure Emacs to automatically do something when you open a file of a particular type (just like
some GUIs will automatically launch a specific application if you click on the icon for a particular file). For
example, I may want Emacs to automatically switch to textmode every time I open a file with a
.txt extension. Well, that already happens. :) So let's tell Emacs to always enter textmode when you
open a file named ``README''.
Huh?
Without diving into lots of Lisp programming that you really don't need to know (but it wouldn't hurt you to
learn), let just say that the variable automodealist contains a list of pairs. Each pair contains a regular
expression and an Emacs mode name. If a file you open matches the regular expression (in this case, the
string README) Emacs starts the mode you specified.
The funny syntax above is because we're actaully adding another pair to that mode list. You wouldn't want to
just assign to automodealist without making sure the values that it already contains aren't lost.
File Associations 17
Emacs Beginner's HOWTO
And if I wanted Emacs to automatically switch to htmlhelpermode every time that I opened a file that
ended with .html or .htm, I would add this to my .emacs file:
In case you haven't already guessed, every time you start Emacs, it looks for a file named .emacs in your
home directory. Your .emacs file is where you should put any Lisp code that you want run automatiaclly
and that includes the sort of customization we've been dealing with here.
(setq inhibitstartupmessage t)
The inhibitstartupmessage variable controls whether or not Emacs displays that welcome
message when it starts. After a while, I got sick of looking at it (because I knew how to find the help and
whatnot), so I went in search of a way to turn it off.
As an exercise, try creating a .emacs file of your own and add that line to it. Then exit and start Emacs
again. You should not see the welcome message.
Often times when your read about an Emacs mode (or a package), the documentation will suggest some code
to add to your .emacs file in order to make the mode or package work in a particular way.
The GNU Emacs FAQ (Ch F) contains some items related to .emacs files that you might find useful.
Customize provides a more intuitive method of customizing parts of Emacs. To try it out, either visit the
Customize submenu in your Help menu, or type Mx customize.
Customize groups customization into logical groups like ``Editing'', ``Programming'', ``Files'', and so on.
Some groups contain subgroups.
If you make changes using the customize interface, Emacs will save the changes to your .emacs file. That's
rather handy, because you can easily inspect (and change) the changes it made for you.
I don't use the Customize interface, so I can't say much more about it..
emacs*Background: DarkSlateGray
emacs*Foreground: Wheat
emacs*pointerColor: Orchid
emacs*cursorColor: Orchid
emacs*bitmapIcon: on
emacs*font: fixed
[Link]: 80x25
In Debian, the ~/.Xdefaults doesn't seem to be used. However, Debian people can put
what you have given in /etc/X11/Xresources/emacs and they can have the pretty
colors that they had when they were using RedHat.
NextPreviousContentsNextPreviousContents
5. Popular Packages
In addition to the many different modes available for Emacs, there are also many addon packages. I call
them packages because they're more than just new modes. They often include extra utilities or are so large
that calling them modes just doesn't seem to do them justice. In still other cases, they are software which
extends or integrates other Emacs modes and packages. The distinction isn't entirely clear, but that's okay.
5.1 VM (Mail)
To quote the VM FAQ:
VM (View Mail) is an Emacs subsystem that allows mail to be read and disposed of within
Emacs. Commands exist to do the normal things expected of a mail user agent, such as
generating replies, saving messages to folders, deleting messages and so on. There are other
more advanced commands that do tasks like bursting and creating digests, message
forwarding, and organizing message presentation according to various criteria.
When I first began using Emacs, I tried VM out for a while. I found it to be a great replacement for Pine,
Elm, or most any other mail program. But I didn't want to use separate programs to read mail and news. VM
is actively developed and well supported today.
Gnus is a messagereading laboratory. It will let you look at just about anything as if it were
a newsgroup. You can read mail with it, you can browse directories with it, you can ftp with
ityou can even read news with it!
Gnus tries to empower people who read news the same way Emacs empowers people who
edit text. Gnus sets no limits to what the user should be allowed to do. Users are encouraged
5. Popular Packages 20
Emacs Beginner's HOWTO
to extend Gnus to make it behave like they want it to behave. A program should not control
people; people should be empowered to do what they want by using (or abusing) the
program.
GNUS is what I currently use for mail and news (as hinted above). GNUS is also actively developed and well
supported today.
AUC TeX is an extensible package that supports writing and formatting TeX files for most
variants of GNU Emacs. Many different macro packages are supported, including AMS TeX,
LaTeX, and TeXinfo.
NextPreviousContentsNextPreviousContents
6. Other Resources
This section covers books, web sites, newsgroups, mailing lists, and other places you can find more
information about Emacs.
6.1 Books
There are a a few really good books available for learning Emacs. In addition to these, you'll find that many
Linux and Unix books also contain a chapter or two about Emacs (and vi).
You can buy it at a discount from [Link] via their Associates program:
[Link]
Commentary: This is probably the best book to start with. After you've read the HOWTO and looked
through the FAQ this book serves as a comprehensive and very approachable tutorial.
You can buy it at a discount from [Link] via their Associates program:
[Link]
Commentary: After you've used Emacs for a while and have decided that you'd like to try writing your own
mode or maybe try out some advanced customization, this is the book for you. While it doesn't attempt to
teach Lisp, it does contain a brief introduction to the language.
6. Other Resources 22
Emacs Beginner's HOWTO
This is an elementary introduction to programming in Emacs Lisp for people who are not
programmers, and who are not necessarily interested in programming, but who do want to
customize or extend their computing environment.
You can retrieve the manual in its entirety via anonymous FTP from the GNU FTP server:
[Link]
You can buy a nicely printed version from [Link] via their Associates program:
[Link]
Commentary: This a good introductory manual for Emacs Lispeven if you're not a heavyduty
programmer.
You can retrieve the manual in its entirety via anonymous FTP from the GNU FTP server:
[Link]
Commentary: This is the definitive guide to the Emacs Lisp programming language.
EMACSulation
EMACSulation is a column written by Eric Marsden that appears in the online magazine Linux Gazette
located at [Link] The most recent column as of this writing is located at
[Link] Scan to the bottom of the article for links to previous
ones.
6.3 Newsgroups
Search you local news feed for newsgroups which contain the string ``emacs'' and you'll probably find many.
Those which my server carries are:
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
The Emacs Lisp archives on [Link] contain various pieces and packages of
Emacs Lisp code. Emacs Lisp is the language used to extend the GNU Emacs editor
published by the Free Software Foundation. Although much Emacs Lisp code is included in
the GNU Emacs distribution, many people have written packages to interface with other
systems, to better support editing the programming language they use, to add new features, or
to change Emacs' default behavior. Most of the contents of this archive have been written by
individuals and distributed publicly over the Internet through the infoemacs or
infognuemacs mailing lists or the [Link], [Link], or [Link]
newsgroups.
EMACSulation 24
Emacs Beginner's HOWTO
NOTE: As far as I can tell, the Emacs Lisp Archive is slowly becoming out of date. I see very few new (or
updated) packages appearing there, though I know they exist. They do get posted to the
[Link] newsgroup. (Feel free to correct me if this is wrong.)
7. Credits
The following people have contributed to the success of this document.
Next PreviousContents
7. Credits 25