36

On Windows and Ubuntu I use GNU Emacs, but FSF doesn't provide binaries for the Mac

I have a decent version that came with Snow Leopard, but just running in the bash terminal. Is there a version that runs in a standalone window and is more Mac friendly?

I downloaded Emacs Cocoa from Macports, but it didn't compile.

12 Answers 12

32

I tried Aquamacs, but found that it tried too hard to be Mac-like. This is probably good if you're a Mac user who is new to Emacs.

If you're an Emacs user new to Macs (like I was a couple years ago), you'll probably be more comfortable with Mac specific builds of standard Emacs. I get mine from Emacs for Mac OS X. Try the standard build on the home page, or click on the "Other Versions" button for more options. I've been using the latest pretest version for 6-12 months without problems.


If you really want to be studly and build your own copy, look at the hints on the Emacs wiki page for Mac OS X. Note, in particular, that you want to build with options for nextstep and not cocoa or carbon:

./configure --with-ns
make
make install
3
  • I am a very new mac user and a fairly old emacs user, so building my own sounds ideal. Thanks for the tip about ns.
    – justinhj
    May 7, 2010 at 20:54
  • In emacs for Mac OS X there is no preference to set the meta key to command (a must in no english keyboard, since we use a lot the alt key). Plus, there's no documentation at all. Can you give me some info to solve this issues? I would like to use it :) Thanks.
    – volothamp
    Jan 1, 2011 at 16:14
  • Found by myself: superuser.com/questions/160150/…
    – volothamp
    Jan 1, 2011 at 18:14
22

This is an older thread, but I came across it when I was looking to see if there were new developments in OSX emacs distributions. If you are using homebrew, you can install the latest version of cocoa emacs with:

brew install emacs --HEAD --cocoa --srgb

Note that you need to have bazaar installed. Alternatively, you can install it from the git mirror with --use-git-head

1
  • This does not work properly. Emacs.app is not installed. The correct command line is "brew install --cocoa --srgb emacs". The order of the options is important. Mar 10, 2015 at 21:26
19

https://github.com/railwaycat/emacs-mac-port

Been an Emacs user for 5 years and have tried all the Mac ports. This is by far the best I've used, both under the hood and in appearance. It even has smooth pixel scrolling, pinch zoom, and some nifty Mac-specific optimizations.

  • C-g handling

    You can quit (while t) and (shell-command "sleep 100"). No bogus menu bar activation while these evaluations.

  • Emulation of select without periodic polling

    It doesn't use CPU time while the Lisp interpreter is idle and waiting for some events to come, even with subprocesses or network connections.

  • Graceful termination

    If you try logout/shutdown/reboot while leaving a file-visiting buffer modified and unsaved, a popup window appears for confirmation. If you cancel the termination of Emacs (including C-g or ESC), the whole logout/shutdown/reboot process is also canceled immediately (i.e., you will see a "canceled" dialog immediately rather than a "timed out" one afterward). If you don't have unsaved buffers, shell buffers, etc., you won't see unnecessary confirmation.

  • Apple event handling

    One can define Apple event handlers at the Lisp level. Actually, graceful termination above is an instance of Lisp-level Apple event handling. Another example is "Get URL" handler that enables us to invoke the mailer you customized with mail-user-agent, e.g.,

    $ osascript -e 'tell application "Emacs" to open location "mailto:[email protected]"'
    

    If you set Emacs as the default mailer via Mail.app preference, the Emacs mailer will set up a draft buffer when you click a mailto: link in a Web browser.

  • DictionaryService support

    You can look up a word under the mouse pointer in the selected window by typing ⌘ (Command)-^ (Control)-D (or double/single-tapping a trackpad with three fingers on Mac OS X 10.7/10.8, resp.).

  • Resolution independence (10.4 - 10.6, 10.5 recommended)

    Scaling works in Framework-Scaled Mode as opposed to (blurry) Magnified Mode for the Carbon port. Note: this type of resolution independence is deprecated on Mac OS X 10.7.

  • 64-bit (10.5 and later)

    You can build and run a 64-bit binary with GUI support by specifying CC="gcc -arch x86_64" or CC="gcc -arch ppc64" on configure.

  • Some minor visual enhancements

    • Aligned key bindings in menus

    • Progress indicator (corresponding to hourglass) in the title bar

    • Unusable items in the font panel are hidden

      Try Options → Show/Hide → Font Panel from the menu bar or M-x mac-font-panel-mode RET.

    • Update display while the resize control (or the slider in the font panel) is being dragged

    • The fullscreen frame parameter, with all values supported: fullboth, fullwidth, fullheight, and maximized. The fullboth frames, which don't have the title bar, still allow us to access the menu bar, the Dock, and the tool bars. The menu bar can also be activated via menu-bar-open, Control-F2 (if full keyboard access enabled), or ⌘ (Command)-Shift-/ (on Mac OS X 10.5 and later) even for fullboth frames where the menu bar is usually hidden. Changing fonts or internal-border-width in fullscreen frames does not clutter display. On multiple monitor environments, one can move fullscreen frames to another monitor by setting the left and top frame parameters accordingly. Attaching/detaching external monitors should work even with fullscreen frames.

    • The sticky frame parameter, which allows us to keep particular frames visible for all Spaces on Mac OS X 10.5 and later.

    • The function system-move-file-to-trash, which can be specified as a value of delete-by-moving-to-trash.

    • SVG image display. This can be done via the WebKit framework, so you don't need librsvg.

    • Multi-page TIFF images.

    • The function x-select-font that provides modal font selection dialog in a compatible way with GTK+ and W32 ones. Note that a nonmodal counterpart has been available since Emacs 22 Carbon port via mac-font-panel-mode.

    • Unicode character display including non-BMP ones.

    • Complex Text Layout and text shaping. They are implemented using the Core Text or NS Text layout engine, so you don't need libotf.

    • Glyph selection with variation selectors. Most of Adobe-Japan1 ideographic glyphs are accessible via IVSes (Ideographic Variation Sequences) even for the OS-bundled Hiragino fonts, which do not contain the UVS subtable in their cmap table as of Mac OS X 10.6.

    • Can be compiled with the ImageMagick support. Even without the ImageMagick library, the Mac port provides a fallback using the Image I/O framework so you can scale and rotate images.

    • The variable tool-bar-style works like in GTK+. The values both-horiz, text-image-horiz are synonymous with both.

    • Pixel-based mouse wheel smooth scroll for newer mice/trackpads.

    • Gesture event handling for newer trackpads. By default, pinch out/in are bound to text size scaling. With the shift key, they turn on/off fullscreen status of the frame.

    • Apple event sending with (a)synchronous reply handling. ODB Editor Suite support is added as an example. (Only tested with QuickCursor. Add "<string>org.gnu.Emacs</string>" to the elements of QCEditInChoices in QuickCursor.app/Contents/Info.plist. On QuickCursor 2.0, you need to kill the buffer after saving it in order to reflect the changes to the original text area.)

    • "Click in the scroll bar to: Jump to the spot that's clicked" setting in the System Preferences is supported. Pressing the option key while clicking toggles this behavior temporarily.

    • Change of text smoothing threshold setting in the Appearance pane of the System Preferences is reflected immediately.

    • Several keyboard shortcuts (notably those for Keyboard Navigation) listed in System Preferences just work like other applications.

    • When the clipboard has both textual and image data, yank inserts the former and push both into the kill ring so the latter can be inserted with yank-pop afterwards.

    • Use non-integral x positions for displaying antialiased proportional fonts. You can see the difference by putting the box cursor over Helvetica 12pt I, whose ideal width is 3.33398 but displayed with the rounded width 3, for example.

    • Emacs info nodes are accessible via search field in the Help menu on Mac OS X 10.6 and later.

    • Menu item "Open Selected File in Emacs" is shown in Services or context menu of other applications by default on Mac OS X 10.6 and later when absolute pathname-like text is selected.

    • Reverse conversion in Kotoeri works even without selection. Hitting Eisu/Kana key on JIS keyboard (or ^ (Control)-Shift-;/J/K on US keyboard) twice also works.

    • New function mac-file-alias-p, which is parallel to file-symlink-p.

    • Experimental support for accessibility with respect to the custom view for Emacs frames. It is required to support "Text to Speech" on Mac OS X 10.7. Still there are several glitches.

    • Can display color bitmap fonts such as Apple Color Emoji, if compiled and executed on Mac OS X 10.7 or later. Also supports display of some combinations of regional indicator symbols, such as U+1F1EF followed by U+1F1F5, as national flags. Variation Selectors 15 (text-style) and 16 (emoji-style) are also supported.

    • New function mac-start-animation, which provides animation effects on Mac OS 10.5 and later via Core Animation. You can see the default animations with buffer switching by horizontal swiping/flicking, exiting from the splash screen by typing "q", and the "About Emacs" and "Preferences..." menu items in the application menu (labeled "Emacs") in the menu bar.

5
  • I've also had excellent results with this port, after finding both Aquamacs and "Emacs for OS X" unsuitable -- I recommend it highly. Sep 26, 2013 at 15:08
  • 1
    nice, this is worth it just for smooth scrolling alone
    – huyz
    Aug 21, 2014 at 8:40
  • Can this port be used with Aquamacs-style modifier keys, i.e. option for meta, and command for hyper/super? When I tried it I couldn't get option to make anything but squiggly accents and characters. Aug 11, 2015 at 0:41
  • @incandescentman yes it can. Oct 29, 2015 at 17:32
  • Thank you for this information! Being totally agree with @huyz I just wonder if there is similar build for Linux? I mean, if there is a build of the Emacs with smooth scrolling for Linux?
    – avp
    Nov 10, 2015 at 14:06
5

Well I use vanilla emacs with the ns patch but with this settings

(setq mac-command-modifier 'meta)
(setq mac-option-modifier nil)
(setq ns-function-modifier 'hyper)

;; keybinding to toggle full screen mode
(global-set-key (quote [M-f10]) (quote ns-toggle-fullscreen))

(add-to-list 'ido-ignore-files "\\.DS_Store")

;; Move to trash when deleting stuff
(setq delete-by-moving-to-trash t
      trash-directory "~/.Trash/emacs")

I got them from the guy from emacs rocks github I think. That way I get to use ´ and other option characters as in any other application and also have a more familiar placement of the Meta Key (I have capslock as ctrl btw)

Also

(setq x-select-enable-clipboard t)

So I can copy and paste into emacs (ie. I cmd+c on chrome and C-y on emacs to paste and viceversa C-w cmd+v)

2

Have a look at Aquamacs, which should be what you're looking for.

2

If you install MacPorts, you can install a decent build of emacs, and easily keep it updated. This has the advantage of giving you easy access to a bunch of other packages if you want them.

1

macports has several variants of emacs available:

emacs has the variants:
   gtk: Builds emacs as an X11 program with GTK+2 widgets
     * requires x11
   motif: Builds emacs as an X11 program with Motif widgets
     * requires x11
   universal: Build for multiple architectures
   x11: Builds emacs as a X11 program with Lucid widgets

There's also a Cocoa emacs:

emacs-app @23.1 (aqua, editors)
    The GNU Emacs text editor (Cocoa version)
1
  • This is the one that didn't build for me. I'll see if I can post the errors up some time
    – justinhj
    May 7, 2010 at 20:55
1

Since you're on Snow Leopard, emacs-app from MacPorts won't compile, but emacs-app-devel will!

0

Personally use carbon emacs 'cos it's the one that hasn't been adulterated with annoying tabs and looks the most like the original one. http://www.emacswiki.org/emacs/CarbonEmacsPackage

One tip, if you're using spaces, is to change the switch between windows to be something other than ctrl-arrow, because every time you try and do wordwise tab in emacs it will take you to a different window which gets a little wearing after a while.

Fonts support is a bit limited with carbon emacs, which I haven't yet got round to having a fight with it about.

0

Have a look at http://www.sanityinc.com/full-screen-support-for-cocoa-emacs-on-osx for typster's git repo and patches to cocoa emacs with full screen support that built just fine for me. (I don't use ports or fink, now using homebrew)

0

I use iTerm2 combined with Kieran Healy's Emacs Starter Kit for the Social Sciences + a alias in my .bash_profileto utilize the newest version of emacs for Mac OSX; alias emacs='/Applications/Emacs.app/Contents/MacOS/Emacs -nw'

-2

After years of using EMACS on various UNIXes, Linux, FreeBSD, OS/2 and Windows, I finally stopped... I've been using Smultron instead. I found the Cocoa version of EMACS didn't really integrate that well with Mac OS, and didn't "feel" like normal EMACS for me.

Most of my development is done in specialized IDEs (XCode, Unity or Eclipse) these days, so I don't usually miss EMACS. Then again, I never managed to use EMACS as my OS, just as a text editor. :-)

Eddie is another decent free programmer's text editor for OS X.

Not the answer you're looking for? Browse other questions tagged .