A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!
This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2016-08-21 17:00:08 +02:00
.github Issue template: direct link to bug report template 2016-07-25 12:27:03 +09:00
assets Update badge to follow sheilds.io guidelines 2015-11-14 00:36:14 -05:00
core core: rename dotspacemacs-download-packages 2016-08-19 21:31:57 -03:00
doc core: rename dotspacemacs-download-packages 2016-08-19 21:31:57 -03:00
layers Fix possibly unbound mouse-wheel-mode 2016-08-21 17:00:08 +02:00
private Add local dir in private dir 2015-09-22 19:34:25 -04:00
tests Fix configuration layer functional tests 2016-08-19 23:50:29 -03:00
.gitignore Add some problematic files to gitignore 2016-08-21 15:17:46 +02:00
.projectile Correct Projectile root file with syntax to exclude paths 2014-12-22 21:50:40 -05:00
.travis-build.sh Warmly send contributions from the master to the develop branch 2016-04-29 21:59:51 -04:00
.travis.yml Flaten travis build directory -> .travis-build.sh 2015-12-19 22:56:41 -05:00
CHANGELOG.develop Rename spacemacs-helm and spacemacs-ivy layers to helm and ivy 2016-05-15 22:24:27 -04:00
CHANGELOG.org Bump version to 0.105.22 and update change log 2016-08-19 18:03:50 +02:00
COMMUNITY.org Fix typo in COMMUNITY.org 2016-04-12 22:51:37 -04:00
CONTRIBUTING.org CONTRIBUTING.org: fix typo 2016-04-05 13:05:51 +02:00
init.el Bump version to 0.105.22 and update change log 2016-08-19 18:03:50 +02:00
README.md update notes about powerline separator colours 2016-07-22 13:10:41 +03:00
spacemacs.mk Clean copyrights and update for year 2016 2016-01-11 21:42:17 -05:00

Made with SpacemacsTwitter


Spacemacs

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

***

Gitter Build Status PR being merged Donate Recommend it

***

Quick Install:

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

Table of Contents

Introduction

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

Just clone it, launch it, then press the space bar to explore the interactive list of carefully-chosen key bindings. You can also press the home buffer's [?] button for some great first key bindings to try.

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.

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

spacemacs_python

Features

  • Great documentation: access documentation in Emacs with SPC h SPC.
  • 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

Comprehensive documentation is available for each layer by pressing SPC h SPC.

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 requires Emacs 24.4 or above. The next Emacs major release, Emacs 25, is not officially supported but is partially working (i.e. bugs should be expected).

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.

Note: Ubuntu LTS 12.04 and 14.04 repositories have only Emacs 24.3 available. You have to build from source Emacs 24.4 or greater, as Spacemacs won't work with 24.3. The same may be true for other distributions as well.

OS X

The recommended way of installing Emacs on OS X is using homebrew:

$ brew tap d12frosted/emacs-plus
$ brew install emacs-plus --with-cocoa --with-gnutls --with-librsvg --with-imagemagick --with-spacemacs-icon
$ brew linkapps emacs-plus

Note: these homebrew commands will install Emacs, and link it to your /Applications directory. You still need to run the git clone mentioned at the start of this file. That will populate your ~/.emacs.d directory, which is what transforms a regular Emacs into Spacemacs.

Note: the proposed emacs-plus tap is identical to the emacs formulae, it just defines some additional options like --with-spacemacs-icon.

Note: after you have completed the install process below, it is also recommended to add the osx layer to your dotfile. Install instructions are available in the osx layer documentation.

Note: if the powerline separators on the spaceline are a different (less saturated) color than the rest of the line, you can add following snippet to dotspacemacs/user-config in your .spacemacs file.

(setq ns-use-srgb-colorspace nil)

Keep in mind that this is not ideal solution as it affects all colours in Emacs. Another option is to use different powerline separator. For example, alternate and bar diminishes the difference. And using utf-8 separator makes it go away completely without the need to change colour space. In order to change powerline separator put following snippet in dotspacemacs/user-config.

(setq powerline-default-separator 'utf-8)

For more information about powerline separators, please refer to appropriate section in Documentation.

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

Default installation

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

    cd ~
    mv .emacs.d .emacs.d.bak
    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:

    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

    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.

If the mode-line turns red then be sure to consult the FAQ.

Alternate installations

It may be useful to clone Spacemacs outside Emacs dotdirectory ~/.emacs.d so you can try Spacemacs without replacing completely our own configuration. There is currently two possibilities to support alternative location for Spacemacs configuration.

Modify HOME environment variable

This solution is ideal to quickly try Spacemacs without compromising your existing configuration.

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

Note: If you're on Fish shell, you will need to modify the last command to: env HOME=$HOME/spacemacs emacs

Modify spacemacs-start-directory variable

This solution is better suited to "embed" Spacemacs into your own configuration. Say you cloned Spacemacs in ~/.emacs.d/spacemacs/ then drop these lines in ~/.emacs.d/init.el:

(setq spacemacs-start-directory "~/.emacs.d/spacemacs/")
(load-file (concat spacemacs-start-directory "init.el"))

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 (on master branch)

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 mean that your current version is older.

powerline_update

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

Manual update (on master branch)

(Remove the angle brackets when typing the lines below into your shell.)

git fetch
git reset --hard <tag version which you are updating to>

On develop branch

  1. Update Emacs packages by clicking (press RET) on the [Update Packages] 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

After you update, either manually, or automatically, you are advised to update your packages by clicking the [Update Packages] button on the Spacemacs Home Buffer.

Quotes

Quote by ashnur:

«I feel that spacemacs is an aircraft carrier and I am playing table tennis on the deck as a freerider.»

Quote by deuill:

«I LOVE SPACEMACS AND MAGIT

 That is all»

Contributions

Spacemacs is a community-driven project, it needs you to keep it up to date and propose great and useful configuration for all the things!

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

Here is a throughput graph of the repository for the last few weeks:

Throughput Graph

Communities

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 Attribution-ShareAlike 4.0 International 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 contribute to Bountysource or buy a drink for the maintainer by clicking on the Paypal badge.

If you used spacemacs in a project and you want to show that fact, you can use the spacemacs badge: Built with Spacemacs

  • For Markdown:

    [![Built with Spacemacs](https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg)](http://spacemacs.org)
    
  • For HTML:

    <a href="http://spacemacs.org"><img src="https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg" /></a>
    
  • For Org-mode:

    [[http://spacemacs.org][file:https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg]]
    

Thank you!