Emacs 27.1
This is 'Mac port' addition to GNU Emacs 27. This provides a native GUI support for Mac OS X 10.6 - macOS 10.15. Note that Emacs 23 and later already contain the. Emacs is installed on macOS by default, but a very old version, version 22.1, dated 2007. In terminal, type: which emacs → check if emacs is installed and in your path. Emacs -version → print version. Emacs → launch emacs. (to quit, press Ctrl+x Ctrl+c) Download Latest Emacs for MacOS. GNU Emacs For Mac OS X Pure builds of Emacs for Mac OS X. Download Emacs Version 27.1-1 Universal Binary (62.351 MB) Released 2020-08-11 Usually there's a nifty page here with a big download button. But you are using a browser which doesn't support SVG. XEmacs is a highly customizable open source text editor and application development system. It is protected under the GNU Public License and related to other versions of Emacs, in particular GNU Emacs. Its emphasis is on modern graphical user interface support and an.
Released Aug 10, 2020
Emacs 27.1 has a wide variety of new features, including:
- Built-in support for arbitrary-size integers
- Text shaping with HarfBuzz
- Native support for JSON parsing
- Better support for Cairo drawing
- Portable dumping used instead of unexec
- Support for XDG conventions for init files
- Additional early-init initialization file
- Built-in support for tab bar and tab-line
- Support for resizing and rotating of images without ImageMagick
Emacs 26.3
Released Aug 28, 2019
Emacs 26.3 is a maintenance release.
- New GPG key for GNU ELPA package signature checking.
Emacs 26.2
Released Apr 12, 2019
Emacs 26.2 has a wide variety of new features, including:
- Emacs modules can now be built outside of the Emacs tree source.
- Emacs is now compliant with the latest version 11.0 of the Unicode Standard.
- In Dired, the 'Z' command on a directory name compresses all of its files.
Emacs 26.1
Released May 28, 2018
Emacs 26.1 has a wide variety of new features, including:
- Limited form of concurrency with Lisp threads
- Support for optional display of line numbers in the buffer
- Emacs now uses double buffering to reduce flicker on the X Window System
- Flymake has been completely redesigned
- TRAMP has a new connection method for Google Drive
- New single-line horizontal scrolling mode
- A systemd user unit file is provided
- Support for 24-bit colors on capable text terminals
Emacs 25.3
Released September 11, 2017
Emacs 25.3 fixes a significant security hole.
Emacs 25.2
Released April 21, 2017
Emacs 25.2 is mostly a bug-fix release.
For more information, read the News file.
Emacs 25.1
Released September 17, 2016
See also dates of older releases.
Emacs 25.1 has a wide variety of new features, including:
- Emacs can now load shared/dynamic libraries (modules). A dynamic Emacs module is a shared library that provides additional functionality for use in Emacs Lisp programs, just like a package written in Emacs Lisp would.
- Experimental support for Cairo drawing.
- Enhanced network security (TLS/SSL certificate validity and the like) via the new Network Security Manager (NSM).
- New minor mode 'electric-quote-mode' for using curved quotes as you type.
- Character folding support in isearch.el.
- New and improved facilities for inserting Unicode characters: C-x 8 now has shorthands for several chars, such as U+2010 (HYPHEN), U+2011 (NON-BREAKING HYPHEN), and U+2012 (FIGURE DASH).
For more information, read the News file.
I wanted a nice experience using Emacs for Mac OS X. By 'nice' Imean:
Download Emacs For Mac
- Emacs runs in server mode. It's started like other OS X software by Launch Services.
- I can connect to it with graphical or terminal-based clients easily.
- Graphical clients use Cocoa and not X11.
- There's an icon on my dock to pop up a new graphical frame.
- There's a shell command I can type to open a new graphical frame.
- There's something I can type into Spotlight to open a new graphical frame.
- If the server is dead for some reason, there's a way to start it in a small number of clicks.
- If the server is dead for some reason, as many as the above features as possible still work.
- It's easy, but not the default, to start standalone (non-client) Emacs instances as well.
You too can bring several hours and three separate scripting tools tobear on this, or follow the simple (hah hah) instructions below.
First, install Emacs For Mac OS X. The Emacs that comes with OS X isold and crusty, and the one at that site is new and Cocoa-ready andRetina-enabled and so on. Put it in /Applications
- if you put itsomewhere else, you'll need to correct all the other scripts I'mmentioning in this post.
Emacs For Mac Osx
Emacs Server at Login
Open up the AppleScript Editor. If you're an Emacs user this probablylooks awful and confusing to you. Paste the following into it:
Press ⌘K to compile it, then ⌘S and save it in/Applications/Development
. (This subfolder keeps your Applicationsmenu clean, and has an important effect on sort order later.) To giveit a nice icon, select the original Emacs.app
; press ⌘I; click theicon in the top-left; press ⌘C; select on your new Emacs Server.app
bundle; press ⌘I; click the icon in the top-left; press ⌘V.
Open up System Preferences > Users & Groups > Login Items and nowyou can press the +
button and choose Emacs Server.
The server is invisible until you first connect a client to it. Thenit will appear in the dock, as the regular Emacs.app
.
New Frame Dock Icon
To make a dock icon that opens up a new Emacs frame - a client if theserver is available, a standalone instance otherwise - create thefollowing script in the AppleScript Editor and save it as anApplication named Emacs Client. in /Applications/Development
.
Then drag this from the Applications folder to your dock. This willalso make it so typing emacs
into Spotlight selects this as thefirst item ('Development' sorts before 'Emacs', 'Client' sorts before'Server').
If connected to the server, this opens up a new client frame eachclick, by design. To just raise existing frames, click the otherEmacs icon on the dock, representing the running application.
Server-aware Shell Scripts
I put these in ~/local/bin
. You'll need to add that to your $PATH
if you haven't already. First, two simple ones. These will start newinstances, not clients, but they're necessary to properly handle shellarguments for fallbacks for clients. They're also nice to have if youactually want to start a new instance.
Start a new Cocoa instance - emacsc
:
Start a new terminal instance - emacst
:
Now for something ma little ore complicated - ec
, start a Cocoaclient or fall back to a new instance (via the above emacsc
) if theserver is unavailable.
Similarly, et
, for a terminal client or new terminal instance.
Why are ec
and et
scripts instead of aliases? Many tools will failif $EDITOR
does not resolve to an actual executable somewhere in$PATH
because they invoke the tool directly instead of invoking ashell to run it.
Finally: Some aliases for ~/.bash_profile
, to override the ancientversion of Emacs that Mac OS X comes with by default.
Activate Emacs on New Frames
If you start emacsc
or ec
from Terminal, Mac OS X doesn't realizeyou probably want to switch focus to the Emacs session automatically.There are also plenty of other ways you might start Emacs besidestyping a command into Terminal, and you probably want the new framesfocused then as well.
To do this, we can take advantage of the ns
features in Emacs Lispand the frame-creation hooks. Add the following to your ~/.emacs
orsome file it loads:
Now anything that opens or selects a frame will also activate Emacsfor Finder. The featurep
check means this is harmless to load onnon-OS X platforms, and ns-raise-emacs
is not (interactive)
forreasons that will be self-evident if you think about them.
Remaining Issues
Launch Services is happy to start the Emacs Server instance but losestrack of it afterwards. This is mostly harmless but annoying.
The second Emacs icon on the dock (the one for the main Emacs.app
rather than your custom Emacs Client.app
) behaves oddly when noframes are visible. Its menu bar and context menu don't work, and youcan't start a new frame from it directly. This is likely an issuebecause both Emacs and Finder assume any graphical application has atleast one main window / frame, even if it might not be visible.
(Thanks to Dan Gerrity for pointing out a typo in the original postedemacst
script, and Sean B. Palmer for Emacs Lisp improvements thatled to much simpler shell scripts.)