Penguin
Diff: HowToEmacsBeginnerHOWTO
EditPageHistoryDiffInfoLikePages

Differences between current version and predecessor to the previous major change of HowToEmacsBeginnerHOWTO.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 3 Last edited on Monday, October 25, 2004 5:15:41 am by AristotlePagaltzis
Older page: version 2 Last edited on Friday, June 7, 2002 1:06:31 am by perry Revert
@@ -1,2105 +1 @@
-  
-  
-  
-Emacs Beginner's HOWTO  
-  
-  
-  
-----  
-  
-!!!Emacs Beginner's HOWTO  
-  
-!!Jeremy D. Zawodny:  
-Jeremy@Zawodny.comv1.12, 2001-03-25  
-  
-  
-----  
-''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  
-http://www.wcnet.org/jzawodn/emacs/''  
-----  
-  
-  
-  
-  
-!!1. Introduction  
-  
-  
-*1.1 Copyright  
-  
-*1.2 Audience and Intent  
-  
-*1.3 What is Emacs?  
-  
-  
-  
-  
-  
-!!2. Running Emacs  
-  
-  
-*2.1 Starting & Quitting Emacs  
-  
-*2.2 Some Terminology  
-  
-*2.3 Keyboard Basics  
-  
-*2.4 Tutorial, Help, & Info  
-  
-  
-  
-  
-  
-!!3. Emacs Modes  
-  
-  
-*3.1 Major vs. Minor Modes  
-  
-*3.2 Programming Modes  
-  
-*3.3 Authoring  
-  
-*3.4 Other Modes  
-  
-  
-  
-  
-  
-!!4. Customizing Emacs  
-  
-  
-*4.1 Temporary Customization  
-  
-*4.2 Using a .emacs File  
-  
-*4.3 The Customize Package  
-  
-*4.4 X Windows Display  
-  
-  
-  
-  
-  
-!!5. Popular Packages  
-  
-  
-*5.1 VM (Mail)  
-  
-*5.2 Gnus (Mail and News)  
-  
-*5.3 BBDB (A rolodex)  
-  
-*5.4 AucTeX (another TeX mode)  
-  
-  
-  
-  
-  
-!!6. Other Resources  
-  
-  
-*6.1 Books  
-  
-*6.2 Web Sites  
-  
-*6.3 Newsgroups  
-  
-*6.4 Mailing Lists  
-  
-*6.5 The Emacs Lisp Archive  
-  
-  
-  
-  
-  
-!!7. Credits  
-----  
-  
-!! 1. Introduction  
-  
-!!1.1 Copyright  
-  
-  
-  
-Copyright (c) 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  
-http://www.gnu.org/copyleft/gpl.html  
-  
-  
-  
-!!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:  
-http://www.talug.org/. 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  
-http://www.gnu.org/gnu/linux-and-gnu.html 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:  
-  
-  
-  
-  
-  
-*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 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:  
-http://www.fsf.org/ and the GNU project  
-http://www.gnu.org/) 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:  
-http://www.gnu.org/software/emacs/emacs.html  
-  
-  
-----  
-  
-!! 2. Running Emacs  
-  
-!!2.1 Starting & Quitting Emacs  
-  
-  
-  
-As a new user, you'll probably want to launch Emacs just to mess  
-around and try it out. Once you're into Emacs and want to exit,  
-however, you may not be able to figure out what to do. So if you've  
-never used Emacs before, give it a shot right now. At your shell  
-prompt, type emacs and hit enter. Emacs should start up. If  
-not, it is either not installed or not in your path.  
-  
-  
-  
-  
-  
-Once you've seen Emacs, you need to know how to exit. The  
-keystrokes for leaving Emacs are C-x C-c. The C-x  
-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 first--especially if you're a  
-vi user. Unlike vi, Emacs doesn't have separate  
-modes for editing text and issuing commands.  
-  
-  
-  
-  
-  
-To re-cap: emacs will start Emacs. C-x C-c will  
-exit Emacs.  
-  
-  
-  
-  
-!What you'll see  
-  
-  
-When Emacs starts up it will consume a whole X window (or screen if  
-you're running on a console instead of in the X Window System). You'll  
-see a menu across the top, some text in the main part of the screen,  
-and a couple of lines at the bottom.  
-  
-  
-  
-  
-  
-It will look something like this ASCII sketch:  
-  
-  
-  
-  
-+----------------------------------------------------------------------+  
-|Buffers Files Tools Edit Search Mule Help |  
-| |  
-|Welcome to GNU Emacs, one component of a Linux-based GNU system. |  
-| |  
-| |  
-| |  
-| ... |  
-| |  
-|---1:---F1 *scratch* (Lisp Interaction)--L1--All-------------|  
-|For information about the GNU Project and its goals, type C-h C-p. |  
-+----------------------------------------------------------------------+  
-  
-  
-  
-  
-  
-  
-__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 on-line help and related items.  
-  
-  
-  
-  
-!The Menu Bar  
-  
-  
-The topmost line of the Emacs interface is a menu. If you're  
-running X, you'll recognize them as traditional pull-down menus that  
-you can access using your mouse. Otherwise you'll need to use keyboard  
-shortcuts (not covered here) for accessing the menus.  
-  
-  
-  
-  
-!The Status Bar and Mini-buffer  
-  
-  
-Of the last two lines in the Emacs interface, the topmost one is  
-essentially a status bar. It contains information about the buffer  
-you're working in, which mode Emacs is in, and various other  
-things. For now, just realize that it's there.  
-  
-  
-  
-  
-  
-The bottommost line is called the __mini-buffer__. It is  
-separated from the main buffer by the status bar we just  
-discussed. You can think of the mini-buffer as the Emacs  
-``command-line''. 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.  
-  
-  
-  
-  
-!!2.2 Some Terminology  
-  
-  
-  
-This section covers the most basic of Emacs terminology that you'll  
-encounter when using and reading about Emacs.  
-  
-  
-  
-  
-!Buffers & Files  
-  
-  
-Unlike some editors, when you open a file in Emacs it does not stay  
-``open'' the entire time you're working with it. Instead, Emacs reads  
-the file into a __buffer__ in memory. While you're editing the  
-buffer and working with the data nothing is changed on disk. Only when  
-you actually save the buffer does the file on disk get updated. There  
-are advantages and disadvantages to this approach but it is only  
-important that you understand that it works this way.  
-  
-  
-  
-  
-  
-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.  
-  
-  
-  
-  
-!Point & Region  
-  
-  
-In Emacs lingo, you'll often hear or see references to the  
-__point__. In general terms the point is the cursor. The actual  
-distinction between the point and cursor probably isn't important when  
-you're first starting out with Emacs. But if you are curious, think  
-about it this way. The cursor is the visual representation of the  
-point. The cursor is always ``on'' a particular character position in  
-the current buffer. The point, on the other hand, lives in the space  
-''between characters'' on in the buffer. So you might say that if  
-the cursor is on the letter `h' in the word ``the'' then the point is  
-between the `t' and the `h'.  
-  
-  
-  
-  
-  
-Like many modern editors, Emacs allows to perform operations  
-(indent, spell-check, 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.  
-  
-  
-  
-  
-!!2.3 Keyboard Basics  
-  
-  
-  
-This section covers the basics of keyboarding for Emacs. Like every  
-powerful editor, everything that you can do with Emacs is just a few  
-keystrokes away.  
-  
-  
-  
-  
-  
-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.  
-  
-  
-  
-  
-!Command Keys (Meta, Esc, Control, and Alt)  
-  
-  
-As you'll soon learn, Emacs makes heavy use of multi-key  
-combinations. Because it is not a modal editor like vi, you  
-don't have to think about being in ``command mode'' or ``editing  
-mode'' before you can try to move the cursor or execute a  
-command. Instead, you just press the right combination of keys and  
-Emacs does as told (usually).  
-  
-  
-  
-  
-  
-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  
-C-x f it means ``press control-x and then f.'' And if you see  
-a reference to something like M-x shell is means ``press  
-alt-x and type the word shell''.  
-  
-  
-  
-  
-  
-A very useful command for beginners is M-x apropos or  
-C-h a. apropos will search the Emacs on-line 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  
-C-h a and then frame.  
-  
-  
-  
-  
-!Moving Around in a Buffer  
-  
-  
-Now that you know what all those fancy abbreviations mean, here's a  
-list of the most common keystrokes for moving within a buffer:  
-  
-  
-  
-  
-Keystrokes Action  
------------------------------------  
-C-p Up one line  
-C-n Down one line  
-C-f Forward one character  
-C-b Backward one character  
-C-a Beginning of line  
-C-e End of line  
-C-v Down one page  
-M-v Up one page  
-M-f Forward one word  
-M-b Backward one word  
-M-< Beginning of buffer  
-M-> End of buffer  
-C-g 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 M-x  
-something or C-something) are actually just shortcuts to  
-functions which are part of Emacs. You can call any of those functions  
-by typing M-x function-name 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 save-buffer. By default it is also bound to C-x  
-C-s. So, you can either use they shortcut to save the current  
-buffer, or you could type M-x save-buffer and achieve the  
-exact same result.  
-  
-  
-  
-  
-  
-All of the most common functions have keyboard shortcuts by  
-default. Some of them are listed below.  
-  
-  
-  
-  
-Keystrokes Function Description  
--------------------------------------------------------------------  
-C-x C-s save-buffer Save the current buffer to disk  
-C-x u undo Undo the last operation  
-C-x C-f find-file Open a file from disk  
-C-s isearch-forward Search forward for a string  
-C-r isearch-backward Search backward for a string  
-replace-string Search & replace for a string  
-replace-regexp Search & replace using regexp  
-C-h t help-with-tutorial Use the interactive tutorial  
-C-h f describe-function Display help for a function  
-C-h v describe-variable Display help for a variable  
-C-h x describe-key Display what a key sequence does  
-C-h a apropos Search help for string/regexp  
-C-h F view-emacs-FAQ Display the Emacs FAQ  
-C-h i info Read the Emacs documentation  
-C-x r m bookmark-set Set a bookmark. Useful in searches  
-C-x r b bookmark-jump Jump to a bookmark.  
--------------------------------------------------------------------  
-  
-  
-  
-  
-  
-  
-As you try many of those functions, you'll notice that many will  
-prompt you for input. They will always to do in the mini-buffer. 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 built-in functions available. The  
-list above is a tiny sample that represents those that I use  
-regularly. See the on-line 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 M-x 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  
-C-g to exit out of the selection process and close the new  
-window.  
-  
-  
-  
-  
-!!2.4 Tutorial, Help, & Info  
-  
-  
-  
-Emacs comes with an on-line tutorial which walks you through the  
-basic editing features and functions that everyone should know. It  
-also explains how to use the other help features in Emacs.  
-  
-  
-  
-  
-  
-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 C-h  
-t. The tutorial is self-guided 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 M-x info or C-h i which launches  
-Info, the Emacs documentation browser.  
-  
-  
-  
-----  
-  
-!!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  
-E-Mail, 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.  
-  
-  
-  
-  
-!!3.1 Major vs. Minor Modes  
-  
-  
-  
-There are fundamentally two types of modes available: Major and  
-Minor. The distinction isn't the easiest thing to grasp until you've  
-worked with a few of them off and on, but let's give it a shot.  
-  
-  
-  
-  
-  
-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  
-task-specific, 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 text-mode. 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 consumption, I typically want it  
-to look good. It should be properly word-wrapped to a reasonable value  
-and so on. To enable word wrapping I just turn on the  
-auto-fill 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 text-mode than it is when  
-I'm in java-mode for example. I don't want my Java code to be  
-word-wrapped as if was English text. But I ''do'' want the blocks  
-of comments in my Java code to be word wrapped! auto-fill  
-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?)  
-  
-  
-  
-  
-!!3.2 Programming Modes  
-  
-  
-  
-First and foremost, Emacs was designed by a programmer for  
-programmers. There are high-quality modes available for almost every  
-popular programming language you can think of (and even some not so  
-popular ones). I only briefly describe a few of them here.  
-  
-  
-  
-  
-  
-Most programming modes share some common characteristics. Usually,  
-they'll do some or all of the following:  
-  
-  
-  
-  
-  
-*Provide color-syntax highlighting for the language.  
-  
-*  
-  
-*Provide automatic indentation and code formatting for the  
-language.  
-  
-*  
-  
-*Provide context (language) sensitive help.  
-  
-*  
-  
-*Automatically interface with your debugger.  
-  
-*  
-  
-*Add language-specific menus to the menu bar.  
-  
-*  
-  
-  
-  
-  
-  
-  
-In addition, there are some non-language 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 commercially  
-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  
-Objective-C and IDL). It's a very mature and complete package and it  
-included in the Emacs distribution. This mode is called either  
-cc-mode or CC Mode.  
-  
-  
-  
-  
-  
-For more details or to download a newer version, visit  
-http://www.python.org/emacs/.  
-  
-  
-  
-  
-!Perl  
-  
-  
-There are actually two modes for editing Perl code in Emacs. The  
-first is called perl-mode (as you would expect) and the  
-second is cperl-mode. 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 perl-mode was the original mode for editing Perl  
-code in Emacs. It seems to have fewer features than  
-cperl-mode and is lacking the ability to recognize some of  
-Perl's fancier language constructs.  
-  
-  
-  
-  
-  
-Personally, I use and recommend cperl-mode which seems to  
-be quite actively maintained and has just about every feature I could  
-ever want. You can find the latest release here:  
-ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs.  
-  
-  
-  
-  
-  
-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 python-mode from the official Python web site  
-http://www.python.org/emacs/python-mode/.  
-  
-  
-  
-  
-!Others  
-  
-  
-There are many many other editing modes available to help out  
-programmers. Such modes help out with things like:  
-  
-  
-  
-  
-  
-*Shell Scripts (Bash, sh, ksh, csh, ...)  
-*  
-  
-*Awk, Sed, Tcl, ...  
-*  
-  
-*Makefiles  
-*  
-  
-*Change Logs  
-*  
-  
-*Documentation  
-*  
-  
-*Debugging  
-  
-*  
-  
-  
-  
-  
-  
-  
-And much more. See the last section of this document for more  
-information on finding other modes and add-ins.  
-  
-  
-  
-  
-!!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.  
-  
-  
-  
-  
-!Spell-Checking (ispell mode)  
-  
-  
-Authors of many types of documents need to spell-check once in a  
-while. If you have __GNU ispell__ installed, you can type M-x  
-ispell and spell-check the current buffer. If ispell finds words  
-that it doesn't know, it prompts you with a list of possible  
-replacements and lets you select one (or none) of them. It's  
-functionally equivalent to the spell-checkers in many popular non-free  
-software packages.  
-  
-  
-  
-  
-!HTML (html-helper mode)  
-  
-  
-If you find yourself writing HTML files once in a while (or even a  
-lot), you might want to try out html-helper-mode. It is  
-available from  
-http://www.santafe.edu/~nelson/tools/ as is the documentation  
-and related stuff.  
-  
-  
-  
-  
-  
-As its name suggests, html-helper-mode provides lots of  
-things to help out those folks who still write HTML by hand--the old  
-fashioned way.  
-  
-  
-  
-  
-!TeX (tex-mode)  
-  
-  
-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 characters. tex-mode 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 (sgml-mode)  
-  
-  
-The document you're now reading was written in SGML (and probably  
-converted to the format you're reading it in). sgml-mode  
-provides all the basics for SGML documents: validation, highlighting,  
-forward-tag, backward-tag, and much more. It is a standard part of  
-Emacs.  
-  
-  
-  
-  
-!!3.4 Other Modes  
-  
-  
-  
-Of course, there are lots of other handy modes to make life  
-easier. Here's just a sampling of the popular ones:  
-  
-  
-  
-  
-!Version Control (vc mode)  
-  
-  
-vc mode interfaces with most of the popular version  
-control back-ends (RCS, SCCS, CVS) to make it very easy to check files  
-in and out, manage releases and so on. It is a standard part of Emacs  
-and is documented in the Emacs documentation.  
-  
-  
-  
-  
-!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. :-)  
-  
-  
-  
-  
-  
-M-x 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.  
-  
-  
-  
-  
-!Telnet and FTP  
-  
-  
-Why switch to another X window or virtual console just to run telnet  
-or FTP? Do it from within Emacs and save yourself the  
-trouble. (Notice the pattern yet?)  
-  
-  
-  
-  
-  
-Just like running a shell inside of Emacs, you can telnet and  
-ftp. Try M-x telnet or M-x 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 M-x man to experience it for yourself. See the  
-documentation for more.  
-  
-  
-  
-  
-!Ange-FTP  
-  
-  
-To quote the ange-ftp 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 file-handling 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 C-x C-s,  
-ange-ftp 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  
-``my.host.org'' can be opened by opening (C-x f) the file:  
-  
-  
-  
-  
-/user@my.host.org:~user/myfile  
-  
-  
-  
-  
-  
-  
-This, also, is a standard part of the Emacs distribution so you can  
-find it documented in the Emacs documentation.  
-  
-  
-  
-  
-  
-Thanks to Etienne Grossmann (  
-etienne@anonimo.isr.ist.utl.pt) for the example above.  
-  
-  
-  
-----  
-  
-!! 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 functions--replacing them  
-with your own).  
-  
-  
-  
-  
-!!4.1 Temporary Customization  
-  
-  
-  
-While experimenting with Emacs customization, you'll probably want  
-to do it in a way that is temporary. If you do something horribly  
-wrong, you can just C-x C-c to exit emacs and run it  
-again. Once you've figured out what changes you'd like to make  
-permanent, you can add them to your very own .emacs file so  
-that they take effect every time you start Emacs. This is discussed in  
-the next section.  
-  
-  
-  
-  
-!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:  
-  
-  
-  
-  
-(setq variable-name new-value)  
-  
-  
-  
-  
-  
-  
-Where variable-name is the name of the variable and  
-new-value is the value you'd like to give the variable. (In  
-Lisp-speak, you're binding a variable to a value.) The setq  
-function in lisp is analogous to the assignment operators (usually  
-=) 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 setq-default. If you're really curious,  
-feel free to look them up in an Emacs Lisp reference.  
-  
-  
-  
-  
-  
-Let's look at a line from my .emacs file  
-  
-  
-  
-  
-(setq-default transient-mark-mode t)  
-  
-  
-  
-  
-  
-  
-The variable transient-mark-mode 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  
-hi-lighted in reverse video or some other color. Emacs will do the same  
-thing it the transient-mark-mode variable is set (to a non-nil  
-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  
-non-zero value. In Perl, a non-null or non-zero 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 non-nill  
-value is considered true.  
-  
-  
-  
-  
-  
-To get the full description of what transient-mark-mode  
-does, you can use the on-line help. Type C-h v or M-x  
-describe-variable and then transient-mark-mode. 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 fill-column. It  
-tells Emacs how wide the screen should be for the purposes of  
-word-wrapping (and auto-fill-mode respects this value). To  
-set the value to something absurd, you could type:  
-  
-  
-  
-  
-(setq fill-column 20)  
-  
-  
-  
-  
-  
-  
-But that won't actually 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 C-x C-e,  
-which calls the function eval-last-sexp in case you  
-care. When you do that, notice that 20 (or whatever value you  
-used) is echoed back to you in the mini-buffer 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 auto-fill-mode enabled (you probably don't), you'll  
-notice the text wrapping at the 20 column mark. Otherwise, after  
-you've typed some stuff, type M-q which calls the function  
-fill-paragraph. 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 text-mode every time I open a file with a  
-.txt extension. Well, that already happens. :-) So  
-let's tell Emacs to always enter text-mode when you open a  
-file named ``README''.  
-  
-  
-  
-  
-(setq auto-mode-alist (cons '("README" . text-mode) auto-mode-alist))  
-  
-  
-  
-  
-  
-  
-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 auto-mode-alist 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 actually adding another  
-pair to that mode list. You wouldn't want to just assign to  
-auto-mode-alist without making sure the values that it  
-already contains aren't lost.  
-  
-  
-  
-  
-  
-And if I wanted Emacs to automatically switch to  
-html-helper-mode every time that I opened a file that ended  
-with .html or .htm, I would add this to my .emacs  
-file:  
-  
-  
-  
-  
-(setq auto-mode-alist (cons '("\\.html$" . html-helper-mode) auto-mode-alist))  
-(setq auto-mode-alist (cons '("\\.htm$" . html-helper-mode) auto-mode-alist))  
-  
-  
-  
-  
-  
-  
-The possibilities are truly endless.  
-  
-  
-  
-  
-!!4.2 Using a .emacs File  
-  
-  
-  
-After you've spent some time with Emacs and have a basic idea of  
-what customization can do for you, you'll probably want to customize a  
-few things permanently (or at least until you change your mind). If  
-you find yourself using Emacs on a daily basis, you'll also notice  
-that your .emacs file get bigger as time goes on. That's a  
-''Good Thing'' because it means you've figured out how to make  
-Emacs work the way __you__ want it do work. It's a shame that  
-more software products don't let you do that.  
-  
-  
-  
-  
-  
-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 automatically and that includes the sort of customization  
-we've been dealing with here.  
-  
-  
-  
-  
-  
-Another example from my .emacs file:  
-  
-  
-  
-  
-(setq inhibit-startup-message t)  
-  
-  
-  
-  
-  
-  
-The inhibit-startup-message 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 (C-h F) contains some items related to  
-.emacs files that you might find useful.  
-  
-  
-  
-  
-!!4.3 The Customize Package  
-  
-  
-  
-As Emacs has grown in popularity and continued to evolved, someone  
-eventually said ``there has to be a better way to let novice users  
-customize their Emacs.'' And customize was born.  
-  
-  
-  
-  
-  
-Customize provides a more intuitive method of customizing parts of  
-Emacs. To try it out, either visit the Customize sub-menu in  
-your Help menu, or type M-x customize.  
-  
-  
-  
-  
-  
-Customize groups customization into logical groups like  
-``Editing'', ``Programming'', ``Files'', and so on. Some groups  
-contain sub-groups.  
-  
-  
-  
-  
-  
-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.''.  
-  
-  
-  
-  
-!!4.4 X Windows Display  
-  
-  
-  
-Like any well behaved X application, Emacs respects your X  
-resources. That means you can control the initial colors, geometry,  
-and other X specific things just as you could with an xterm,  
-nxterm, or whatever.  
-  
-  
-  
-  
-  
-Here's the relevant bit of my ~/.Xdefaults file:  
-  
-  
-  
-  
-emacs*Background: !DarkSlateGray  
-emacs*Foreground: Wheat  
-emacs*pointerColor: Orchid  
-emacs*cursorColor: Orchid  
-emacs*bitmapIcon: on  
-emacs*font: fixed  
-emacs.geometry: 80x25  
-  
-  
-  
-  
-  
-  
-See your X manual page for more details about X resources.  
-  
-  
-  
-  
-  
-Chris Gray (  
-cgray4@po-box.mcgill.ca) also notes:  
-  
-  
-  
-  
-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.  
-  
-  
-  
-  
-----  
-  
-!! 5. Popular Packages  
-  
-  
-In addition to the many different modes available for Emacs, there  
-are also many add-on __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.  
-  
-  
-  
-  
-  
-It is available here:  
-http://www.wonderworks.com/vm/.  
-  
-  
-  
-  
-!!5.2 Gnus (Mail and News)  
-  
-  
-  
-To quote the GNUS Manual:  
-  
-  
-  
-  
-Gnus is a message-reading 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 it---you 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 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.  
-  
-  
-  
-  
-  
-It is available here:  
-http://www.gnus.org/.  
-  
-  
-  
-  
-!!5.3 BBDB (A rolodex)  
-  
-  
-  
-BBDB is an Insidious Big Brother Database, a rolodex-like program  
-for Emacs that works with most of the popular Emacs Mail packages (VM  
-and GNUS included).  
-  
-  
-  
-  
-  
-It is available here:  
-http://pweb.netcom.com/~simmonmt/bbdb/index.html.  
-  
-  
-  
-  
-!!5.4 AucTeX (another TeX mode)  
-  
-  
-  
-AucTeX is another mode for editing TeX files.  
-  
-  
-  
-  
-  
-To quote the AucTeX web site:  
-  
-  
-  
-  
-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.  
-  
-  
-  
-  
-  
-  
-It is available here:  
-http://sunsite.auc.dk/auctex/.  
-  
-  
-  
-----  
-  
-!! 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).  
-  
-  
-  
-  
-!Learning GNU Emacs  
-  
-  
-Authors: Debra Cameron, Bill Rosenblatt, Eric S. Raymond  
-  
-  
-  
-  
-  
-Publisher: O'Reilly & Associates -  
-http://www.ora.com/  
-  
-  
-  
-  
-__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.  
-  
-  
-  
-  
-!Writing GNU Emacs Extensions  
-  
-  
-Author: Bob Glickstein  
-  
-  
-  
-  
-  
-Publisher: O'Reilly & Associates -  
-http://www.ora.com/  
-  
-  
-  
-  
-__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.  
-  
-  
-  
-  
-!Programming in Emacs Lisp: An Introduction  
-  
-  
-Author: Robert J. Chassell  
-  
-  
-  
-  
-  
-From the README file:  
-  
-  
-  
-  
-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:  
-ftp://prep.ai.mit.edu/gnu/emacs/.  
-  
-  
-  
-  
-  
-__Commentary:__ This a good introductory manual for Emacs  
-Lisp--even if you're not a heavy-duty programmer.  
-  
-  
-  
-  
-!The GNU Emacs Lisp Reference Manual  
-  
-  
-Author: Richard Stallman  
-  
-  
-  
-  
-  
-Publisher: The Free Software Foundation -  
-http://www.fsf.org/  
-  
-  
-  
-  
-You can retrieve the manual in its entirety via anonymous FTP from  
-the GNU FTP server:  
-ftp://prep.ai.mit.edu/gnu/emacs/.  
-  
-  
-  
-  
-  
-__Commentary:__ This is the definitive guide to the Emacs Lisp  
-programming language.  
-  
-  
-  
-  
-!!6.2 Web Sites  
-  
-  
-!EMACSulation  
-  
-  
-EMACSulation is a column written by Eric Marsden that appears in  
-the on-line magazine Linux Gazette located at  
-http://www.linuxgazette.com/. The most recent column as of  
-this writing is located at  
-http://www.linuxgazette.com/issue39/marsden.html. 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:  
-  
-  
-  
-  
-  
-*comp.emacs  
-*  
-  
-*comp.emacs.sources  
-*  
-  
-*gnu.emacs  
-*  
-  
-*gnu.emacs.bug  
-*  
-  
-*gnu.emacs.help  
-*  
-  
-*gnu.emacs.sources  
-*  
-  
-  
-  
-  
-  
-!!6.4 Mailing Lists  
-  
-  
-  
-There is a mailing list for GNU Emacs which is hosted by the Free  
-Software Foundation. See the web site  
-http://mail.gnu.org/mailman/listinfo/help-gnu-emacs for more  
-information.  
-  
-  
-  
-  
-  
-The only mailing list devoted to Emacs that I know of right now is  
-the NT-Emacs list. It is a list for folks who are using the Micro$oft  
-Windows version of Emacs. See the NT-Emacs FAQ  
-http://www.cs.washington.edu/homes/voelker/ntemacs.html for  
-more information.  
-  
-  
-  
-  
-!!6.5 The Emacs Lisp Archive  
-  
-  
-  
-From the Emacs Lisp Archive README:  
-  
-  
-  
-  
-The Emacs Lisp archives on ftp.cis.ohio-state.edu 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 info-emacs or  
-info-gnu-emacs mailing lists or the comp.emacs, gnu.emacs, or  
-gnu.emacs.sources newsgroups.  
-  
-  
-  
-  
-  
-  
-The archives are available via anonymous FTP from  
-ftp://ftp.cis.ohio-state.edu/pub/emacs-lisp/.  
-  
-  
-  
-  
-  
-__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 comp.emacs.sources newsgroup. (Feel free to correct me  
-if this is wrong.)  
-  
-  
-  
-----  
-  
-!! 7. Credits  
-  
-  
-The following people have contributed to the success of this  
-document.  
-  
-  
-  
-  
-  
-*Craig Lyons  
-Craig.Lyons@compaq.com  
-  
-*  
-  
-*Robert Vollmert  
-rvollmer@gmx.net  
-  
-*  
-  
-*Larry Brasfield  
-larrybr@seanet.com  
-  
-*  
-  
-*Etienne Grossmann  
-etienne@anonimo.isr.ist.utl.pt  
-  
-*  
-  
-*Thomas Weinell  
-kf6mli@amsat.org  
-  
-*  
-  
-*Adam C. Finnefrock  
-adam@bigbro.biophys.cornell.edu  
-  
-*  
-  
-*Chris Gray  
-cgray4@po-box.mcgill.ca  
-  
-*  
-  
-*Robert J. Chassell  
-bob@rattlesnake.com  
-  
-*  
-  
-*Isaac To  
-kkto@csis.hku.hk  
-  
-*  
-  
-*Matteo Valsasna  
-valsasna@elet.polimi.it  
-  
-*  
-  
-*Tijs van Bakel  
-smoke@casema .net  
-  
-*  
-  
-  
-  
-  
-----  
+Describe [HowToEmacsBeginnerHOWTO ] here.