Emacs for Mac OS X
Emacs for Mac OS X provides OS X binaries of GNU
Emacs proper. It's roughly the same you'd get by compiling a GNU Emacs release tarball with ./configure --with-ns
. The site provides builds of stable releases and pretests, as well as nightly snapshots. All of these builds are self-contained, which lets you safely try pretests and snapshots.
Note though, that these binaries lack support for some libraries, notably GNU TLS and ImageMagick. If you'd like to use these—the former is particularly important if you'd like to read your mail in Emacs—you need to get GNU Emacs from Homebrew.
Emacs for OS X Modified
According to the website Emacs for OS X Modified is simply a standard build of GNU Emacs, based on the above, with some additional packages, and the necessary configuration to enable all of these packages.
With the notable exception of ESS, all of these packages are available through Emacs' package archives for installation in any Emacs. For instance, you can install AUCTeX in GNU Emacs proper by simply typing M-x package-install RET auctex
, and enabling it.
The choice of packages suggests that it's mostly targeted at statistician and researches, which would work through their data with R and ESS, and then publish a paper with Org or AUCTeX and LaTeX.
For other users, this distribution is probably of little value, since you'd need to install additional packages anyway, and might as well use GNU Emacs proper right away.
This is the only distribution which you can create yourself in GNU Emacs proper by installing additional Emacs packages and adjusting your init.el
accordingly. The other distributions are patched and forked variants of GNU Emacs.
Emacs Mac Port
Emacs Mac Port is a patch set for GNU Emacs proper for better OS X integration. Note that GNU Emacs itself has native OS X support as well, but lacks the OS X specific additions, which this patch set provides. Notably:
- Core Text for text rendering, which improves text appearance and Unicode support. This was merged into GNU Emacs proper, and is part of Emacs 24.4.
- Smooth scrolling. GNU Emacs proper scrolls line-wise, which is very laggy and jumpy with trackpads. Emacs Mac Port uses pixel-based scrolling like other native OS X applications, which feels much smoother and is much more precise. It only affects trackpad scrolling, though, so if you don't use the mouse, you won't need it.
- Gestures. You can pinch to increase/decrease the text size. Again, if you don't use the mouse, you won't notice it, and it's arguably just a fancy feature.
- Support for Apple Events. You can send and receive Apple Events from Emacs Lisp.
- Dictionary service. Three-finger tapping will search the word under cursor in Apple's Dictionary application, like in other OS X applications.
- Services integration. You can open a selected file in Finder from the context menu in the running Emacs.
- Native SVG display using Webkit, rather than librsvg. Webkit has better SVG support to my knowledge, but who views SVGs in Emacs?
You'll notice that most of these features are merely concerned with integration into OS X, and are not essential to using Emacs. Other than that, Emacs Mac Port is pretty much like a standard GNU Emacs.
Some of its features make their way back into GNU Emacs, but other will never be merged, since they are exclusive to OS X, and not available in the free alternative GNUStep, which goes against the politics of the FSF to not support proprietary operating systems over their free alternatives. Also, if I remember correctly, the author of this patchset has shown little interest to bring the features back upstream, probably for the former reason.
Aquamacs
Aquamacs is a heavily patched fork of GNU Emacs. Unlike all of the above, it's not based on GNU Emacs, but has an independent source tree. It's regularly synched with Emacs upstream, though, and closely follows Emacs releases. It inevitably lags behind GNU Emacs trunk, however.
It is heavily modified to look and feel like a native OS X application. Notably it supports and encourages standard OS X key bindings, e.g Cmd+S to save. Standard Emacs bindings are mostly still available though.
Since its a fork, heavily modified and with entirely different aims and principles, none of its features will be merged with GNU Emacs: Most of these modifications go directly against the “spirit”, ideas and philosophy of GNU Emacs.
TL;DR (or: What should I pick)
- If you are a statistician or researcher and don't want to setup Emacs yourself: Emacs for OS X modified
- If you want a native OS X application more than everything else: Aquamacs
- If you want Emacs, but with as good OS X support as can be: Emacs Mac Port
- If you just want Emacs without any complications: Emacs for Mac OS X
My personal advice
I never tried Emacs for OS X Modified or Aquamacs, but I see little use in the former (I am no statistician, and can install AUCTeX by myself). I'd also recommend against the latter: It's a fork, and while it gives you best OS X integration, it inevitably lags behind, and receives less support from the Emacs community overall. Many packages don't support Aquamacs, so if there are issues, there's a good chance for you to be left alone as an Aquamacs user.
I did try Emacs Mac Port, and while smooth scrolling, gestures and Apple Events are nice, I found that these little benefits are not worth the hassle of keeping a patched version of GNU Emacs. YMMV, obviously, and if you care for good OS X support, and if these features appeal to you, you should definitely try it.
Nowadays, I use just GNU Emacs snapshot builds. These have reasonably good OS X support, and are by far the easiest to install, and best supported by the community.
I used to get them from Emacs for Mac OS X, but now I use Homebrew, because it supports more libraries, notably GNU TLS for encrypted network connections.
All in all: Use brew install emacs --HEAD --use-git-head --with-cocoa --with-gnutls --with-rsvg --with-imagemagick
:).