Emacs

Emacs is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as the extensible, customizable, self-documenting, real-time display editor.

Development of the first Emacs began in the mid-1970s, and work on its direct descendant, GNU Emacs, continues actively as of 2017.

Installation

There are many Emacs clients on macOS. The recommended version on macOS is Emacs Mac Port, but others are good as well.

Many useful features are built with Emacs Mac Port, e.g. environment variables, full screen, visual enhancements and so on.

Link the Homebrew tap first.

  1. brew tap railwaycat/emacsmacport
  • Method 1: Install with brew cask.

    1. brew cask install emacs-mac

    There are three available versions, emacs-mac, emacs-mac-official-icon, emacs-mac-spacemacs-icon.

  • Method 2: Build from source with Homebrew.

    1. brew install emacs-mac [options]
    2. brew linkapps emacs-mac

Click here to see available options:
1. —with-dbus, Build with d-bus support

2. —with-modules, Build with dynamic modules support

3. —with-xml2, Build with libxml2 support

4. —with-ctags, Don’t remove the ctags executable that emacs provides

5. —with-no-title-bars, Build with a patch for no title bars on frames (—HEAD is not supported)

6. —with-natural-title-bar, Build with a patch for title bar color inferred by your theme (—HEAD is not supported). More info is provided here

7. —with-official-icon, Using official Emacs icon

8. —with-modern-icon, Using a modern style Emacs icon by @tpanum

9. —with-spacemacs-icon, Using the spacemacs Emacs icon by Nasser Alshammari

10. —with-icon-for-documents, Using official icon for documents which default open with Emacs

Emacs plus

  1. brew tap d12frosted/emacs-plus
  2. brew install emacs-plus [options]
  3. brew linkapps emacs-plus

Click here to see available options:
1. —with-24bit-color: Experimental: build with 24 bit color support

2. —with-ctags: Don’t remove the ctags executable that Emacs provides

3. —with-dbus: Build with dbus support

4. —with-mailutils: Build with mailutils support

5. —with-natural-title-bar: Experimental: use a title bar colour inferred by your theme

6. —with-no-title-bars: Experimental: build with a patch for no title bars on frames (—HEAD has this built-in via undecorated flag)

7. —with-x11: Experimental: build with x11 support

8. —without-cocoa: Build a non-Cocoa version of Emacs

9. —without-gnutls: Build without gnutls support

10. —without-imagemagick@6: Build without imagemagick@6 support

11. —without-librsvg: Build without librsvg support

12. —without-libxml2: Build without libxml2 support

13. —without-modules: Build without dynamic modules support

14. —without-multicolor-fonts: Build without a patch that enables multicolor font support

15. —without-spacemacs-icon: Build without Spacemacs icon by Nasser Alshammari

16. —HEAD: Install HEAD version

Note: You might want to install exec-path-from-shell if you are using Emacs plus. It takes care of your environment variables.

Note: to have the title bar match your theme background color, consider using instead:
brew install emacs-plus --HEAD --with-natural-title-bars

Spacemacs

Spacemacs is a new way to experience Emacs — a sophisticated and polished set-up focused on ergonomics, mnemonics and consistency.

Spacemacs can be used naturally by both Emacs and Vim users — you can even mix the two editing styles. Switching easily between input styles makes Spacemacs a great tool for pair-programming.

Installation

  1. If you have an existing Emacs configuration, back it up first:

    1. cd ~
    2. mv .emacs.d .emacs.d.bak
    3. mv .emacs .emacs.bak

    Don’t forget to backup and remove ~/.emacs file otherwise Spacemacs
    WILL NOT load since that file prevents Emacs from loading the proper
    initialization file.

  2. Clone the repository:

    1. git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d

    master is the stable branch and it is immutable, DO NOT make any
    modification to it or you will break the update mechanism. If you want to
    fork Spacemacs safely use the develop branch where you handle the update
    manually.

  3. (Optional) Install the Source Code Pro font.

    If you are running in terminal you’ll also need to change font settings of
    your terminal.

  4. Launch Emacs. Spacemacs will automatically install the packages it requires.
    If you get an error regarding package downloads then you may try to disable
    the HTTPS protocol by starting Emacs with

    1. emacs --insecure

    Or you can set the dotspacemacs-elpa-https to nil in your dotfile to
    remove the need to start Emacs with --insecure argument. You may wish to
    clear out your .emacs.d/elpa directory before doing this, so that any
    corrupted packages you may have downloaded will be re-installed.

  5. Restart Emacs to complete the installation.

Purcell’s Emacs configuration

This is Purcell’s emacs configuration tree, continually used and tweaked since 2000, and it may be a good starting point for other Emacs users, especially those who are web developers. These days it’s somewhat geared towards macOS, but it is known to also work on Linux and Windows.

Installation

To install, clone this repo to ~/.emacs.d, i.e. ensure that the init.el contained in this repo ends up at ~/.emacs.d/init.el:

  1. git clone https://github.com/purcell/emacs.d.git ~/.emacs.d

Upon starting up Emacs for the first time, further third-party packages will be automatically downloaded and installed. If you encounter any errors at that stage, try restarting Emacs, and possibly running M-x package-refresh-contents before doing so.

Doom Emacs

Doom is a configuration for GNU Emacs written by a stubborn, shell-dwelling, and melodramatic ex-vimmer. It wasn’t originally intended for public use, but can be considered a hacker’s starter kit.

Installation

  1. git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
  2. cd ~/.emacs.d
  3. cp init.example.el init.el # maybe edit init.el
  4. make install

Don’t forget to run make every time you modify init.el!

Visit the wiki for a more detailed guide on installing, customizing and grokking Doom.