Introduction & Installation

A (very) Brief Background

So emacs is one of those programs that never dies.. it just looks that way. Development for emacs began in the 70's and is still active, making it somewhat of a big deal in terms of computer history. Emacs stands for Editor MACroS and was originally designed for some archaic system I've never heard of. If you're really that interested, check out the wikipedia entry. The plural form of emacs is emacsen. There is a very popular fork of emacs called Xemacs, which forked in 1991 apparently due to emacs's glacial release cycle. Over time, they've converged on features (I think), and mostly serve as a headache to people wanting to support both. Enough about that.. On to the important stuff.

Choosing an Emacs

There are an absolute ton of emacsen to choose from. They range from platform dependent to cross platform and in a hundred other variations. I use the vanilla emacs installed from git. If it appeals to you, you can compile a version specifically designed for OS X. This is generally more up to date than CocoaEmacs or Aquaemacs (two other emacsen for the mac). It offers quite a few features I don't use and only one I do. (My META key is my cmd key.) mac-keys-mode, for instance, makes tutorials and such hard to follow. Just learn the emacs way and it will feel much easier when you need to use emacs on a different platform.

Installing your Emacs

Installation of your emacs will differ depending on which one you chose. For me, I did the standard configure and make dance. If you also need to compile yours from source, here's a handy link on how to do that.

How to Install a package

Package installation is pretty much at the core of extending emacs. There are a few possibilities in how you may need to install a particular package and I've outlined those below.

If you want to skip a lot of the bootstrapping process, go get technomancy's emacs starter kit. It gets you up and running with lots of stuff. From there, remove and add whatever you want to make it yours.

I used to structure my emacs folder as a directory, whose sub-folders contained various bits of configuration code separated into distinct files. These days, I just have a single file and have learned to live with a lot of the defaults I used to dislike.

Install with package.el

There's this new thing in emacs land, a package manager. I think Xemacs had this for a long time, but now the normal emacs has it. It is built in with version of emacs in trunk (which will be named emacs 24). To install packages, you just M-x package-list-packages. M-x means hold Meta (usually alt) and press x. If you want sticky keys, you can replace meta with ESC (escape key). Then you don't have to push them both at the same time. This is good for some people with RSI and similar ailments. Now you should have a list of packages available to you. Use n or p (next or previous) for going up and down. When you see something you like, press i (install). Once you've decided all the things you want, press x (eXecute) and it'll install it all. There are also alternative repositories of packages. My favorite is marmalade-repo.org.

Install via Make Install

Those packages that have a make install option are fairly easy to install too. The biggest hurdle is figuring out where those packages are going and adding it to your load path. You can find the actual location of where things are being installed by looking at the output of your make install command. For me, make install adds packages to /usr/local/share/emacs/site-lisp and the syntax for adding a location to your loadpath is:

  (setq load-path (cons "/usr/local/share/emacs/site-lisp" load-path))

Install via Copying files over

For a few files, such as django-html-mode, installation is as simple as copying the relevant .el to somewhere on your load path. For me, this is just ~/.emacs.d/ but you can put it anywhere. Just add that directory to your load path like in the previous example.