A great deal of the power of Emacs derives from the thousands of packages that have been developed for it over the years. These can be hard to manage. Thankfully, emacs 24 bundled a package manager in with it.
For a very good explanation of why a package manager is necessary, how to set it up and use it, see this article.
The following are my modifications on these notes:
In emacs 24, (require 'package) does not seem to be necessary, but (package-initialize) is.
Initializing packages installed with package.el can be tricky.
But including the above solves some of this.
- My package-archives list currently is:
(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("marmalade" . "http://marmalade-repo.org/packages/") ("melpa" . "http://melpa.milkbox.net/packages/")))
Finding the set of packages that work well for you can take a lot of time and reading. Instead, you can start out with someone elses set of packages (such as Emacs Prelude or Emacs Starer Kit). I prefer to build the set myself, because I think it gives me a better feel for what is going on, but both of these have provided a useful reference for me.