/spacemacs

An Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!

Primary LanguageEmacs Lisp

![Gitter](https://badges.gitter.im/Join Chat.svg) Build Status Buy A Drink Recommend SpacemacsTwitter


Spacemacs

philosophy | goals | for whom? | screenshots | documentation | contribute | achievements | FAQ

***

Quick Install:

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

Table of Contents

Introduction

Spacemacs is a proposition of a complete new experience for Emacs focused on ergonomics, mnemonics and consistency.

Clone it, launch it then press the space bar and let you guided by the built-in interactive list of key-bindings. You can also press the [?] button on the home buffer for the first essential key bindings to know.

Spacemacs can be used by Emacs or Vim users flawlessly, it is even possible to mix the two styles. You can switch between any style at any moment which make it a very good tool for pair-programming.

Spacemacs is currently in beta, and contributions are very welcome.

spacemacs_python

Features

  • Great documentation: Access documentation in Emacs with SPC f e h
  • Beautiful GUI: you'll love the distraction free UI and its functional mode-line.
  • Excellent ergonomics: all the key bindings are accessible by pressing the space bar or alt-m.
  • Mnemonic key bindings: commands have mnemonic prefixes like SPC b for all the buffer commands or SPC p for the project commands.
  • Batteries included: discover hundreds of ready-to-use packages nicely organised in configuration layers following a set of conventions.

Documentation

A comprehensive documentation is available for each layer by pressing SPC f e h.

To go to the general documentation click here.

You can also check the Quick Start guide and the FAQ.

Getting Help

If you need help, ask your question in the Gitter Chat and a member of the community will help you out.

If you prefer IRC, connect to the Gitter Chat IRC server and join the #syl20bnr/spacemacs channel.

Prerequisites

Emacs

Spacemacs is operational with Emacs 24.3 but Emacs 24.4 and above are recommended to enjoy the full experience.

Some modes require third-party tools that you'll have to install via your favorite package manager.

Linux distros

Install Emacs from the package manager of your Linux distribution.

You should install the "emacs" package, not the "xemacs" package. XEmacs is an old fork of Emacs. The X in its name is unrelated to X11. Both Emacs and XEmacs have graphical support.

OS X

We recommend the homebrew emacs-mac-port formula:

$ brew tap railwaycat/emacsmacport
$ brew install emacs-mac --with-spacemacs-icon  # OR, brew cask install emacs-mac

It is also recommended to add the osx layer to your dotfile:

(setq-default dotspacemacs-configuration-layers '(osx))

Note that the emacs-mac-port server behaves differently than the regular Emacs server. Details can be found on the emacs-mac-port README.

Windows

Good quality builds can be found on this page. It is recommended to install the most stable build.

Be sure to declare a environment variable named HOME pointing to your user directory C:\Users\<username>. Then you can clone Spacemacs in this directory.

Sometimes you'll get the following error when you first start Emacs:

The directory ~/.emacs.d/server is unsafe

To fix it change the owner of the directory ~/.emacs.d/server:

  • from Properties select the Tab “Security”,
  • select the button “Advanced”,
  • select the Tab “Owner”
  • change the owner to your account name

Source: Stackoverflow

For efficient searches we recommend to install pt (the platinum searcher). pt version 1.7.7 or higher is required.

Install

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

    cd ~
    mv .emacs.d .emacs.bak
  2. Clone the repository:

    git clone --recursive 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. Launch Emacs. Spacemacs will automatically install the packages it requires.

  4. Restart Emacs to complete the installation.

If the mode-line turns red then be sure to visit the troubleshooting guide and consult the FAQ.

Spacemacs logo

If you are using Ubuntu and Unity then you can add the Spacemacs logo by following the instructions here.

If you're on a mac follow these instructions. You can find an .icns version of the logo by Nasser Alshammari in his repository.

Update

Spacemacs has a built-in notification of a new version when you are on the master branch. If you are on the develop branch then you'll have to update Spacemacs manually by updating your repository.

Automatic update

When a new version is available a little arrow appears in the mode-line.

Its color depends on the number of versions available since your last update. Green means that your current version is recent, orange and red that your current version is older.

[[file:doc/img/powerline-update.png]]

Click on the arrow to update Spacemacs to the last version.

On develop branch

  1. Update Emacs packages by clicking (press RET) on the [Update] link of the starting page.

  2. Close Emacs and update the git repository:

    git pull --rebase
  3. Restart Emacs to complete the upgrade.

Revert to a specific version

To revert to a specific version you just have to checkout the corresponding branch, for instance to revert to the last 0.103:

git checkout origin/release-0.103

Contributions

Spacemacs is a community-driven project, it needs you to keep it up to date and propose useful and complete configuration!

Before contributing be sure to consult the contribution guidelines and conventions.

License

The license is GPLv3 for all parts specific to Spacemacs, this includes:

  • the initialization and core files
  • all the layer files.
  • the documentation

For the packages shipped in this repository you can refer to the files header.

Spacemacs logo by Nasser Alshammari released under a Creative Commons license.

Supporting Spacemacs

The best way to support Spacemacs is to contribute to it either by reporting bugs, helping the community on the Gitter Chat or sending pull requests.

If you want to show your support financially you can buy a drink to the maintainer by clicking on the Paypal badge.

Thank you !