GNU Emacs

GNU Emacs is Article description::a powerful, extensible, self-documenting text editor. It is released by the Free Software Foundation and has been under development since 1976.

In Gentoo, GNU Emacs is maintained by the team of the same name, which can be reached through. Detailed developer information can be found on the project page.

Several versions side-by-side
In Gentoo, several Emacs versions can be installed on a system simultaneously. The upstream version already installs elisp and data files into versioned subdirectories. To avoid file collisions between slots, in Gentoo binaries and man pages are suffixed with their corresponding version number, too.

The eselect module from can be used to link  and its auxiliary programs to the ones belonging to the desired Emacs version. Consult the eselect user guide for details on eselect.

Configuration
Emacs can be customized by clicking through the GUI (use   ) or by using the  configuration file which is written in Emacs Lisp, Emacs' own Lisp dialect.

Documentation
For a quick-start documentation, type in Emacs: (+ followed by ). For further help on how to use Emacs, start emacs and type (+ followed by ). To exit Emacs, type (+ followed by +).


 * A guided tour of Emacs
 * GNU Emacs manual

Additional elisp packages
Emacs has lots of additional packages written in elisp. There is a number of ways to install them, but the standard one is package.el nowadays. On Gentoo it can be used both on per-user and system-wide way.

To install elisp packages per-user use package.el distributed with GNU Emacs.

To install elisp packages system-wide under the Portage control you can use gs-elpa. Read layman documentation before using it, as gs-elpa represents ELPA repositories as layman overlays. It currently supports 4 repositories: gnu-elpa, marmalade, melpa and melpa-stable.

When the layman setup works, install gs-elpa:

After it you can start adding elisp repos and emerging packages, e.g.:

Bugs related to gs-elpa should be reported on its issue tracker.

If you ever find bugs like this one, you can exclude packages from dependencies adding their name to the "external" object in the "common-config" section of configuration file. For the example issue it would be (together with already added packages):