spacemacs/README.md

417 lines
15 KiB
Markdown
Raw Normal View History

2015-04-08 02:00:10 +00:00
<a name="top"></a>
<a href="http://spacemacs.org"><img src="https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg" alt="Made with Spacemacs"></a><a href="http://www.twitter.com/spacemacs"><img src="http://i.imgur.com/tXSoThF.png" alt="Twitter" align="right"></a><br>
2015-01-15 02:45:20 +00:00
***
<p align="center"><img src="/doc/img/title2.png" alt="Spacemacs"/></p>
2015-03-29 05:16:03 +00:00
<p align="center">
<b><a href="http://spacemacs.org/doc/DOCUMENTATION#orgheadline5">philosophy</a></b>
2015-03-29 05:16:03 +00:00
|
<b><a href="http://spacemacs.org/doc/DOCUMENTATION#orgheadline8">for whom?</a></b>
2015-03-29 05:16:03 +00:00
|
<b><a href="http://spacemacs.org/doc/DOCUMENTATION#orgheadline7">screenshots</a></b>
2015-03-29 05:16:03 +00:00
|
<b><a href="http://spacemacs.org/doc/DOCUMENTATION.html">documentation</a></b>
2015-03-29 05:16:03 +00:00
|
<b><a href="CONTRIBUTING.org">contribute</a></b>
2015-03-29 05:16:03 +00:00
|
<b><a href="http://spacemacs.org/doc/DOCUMENTATION#orgheadline187">achievements</a></b>
2015-03-29 05:16:03 +00:00
|
<b><a href="http://spacemacs.org/doc/FAQ">FAQ</a></b>
2015-03-29 05:16:03 +00:00
</p>
2015-01-15 02:45:20 +00:00
***
2016-03-04 15:29:17 +00:00
<p align="center">
<a href="https://gitter.im/syl20bnr/spacemacs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"><img src="https://badges.gitter.im/Join Chat.svg" alt="Gitter"></a>
<a href="https://travis-ci.org/syl20bnr/spacemacs"><img src="https://travis-ci.org/syl20bnr/spacemacs.svg" alt="Build Status"></a>
<a href="https://waffle.io/syl20bnr/spacemacs"><img src="https://badge.waffle.io/syl20bnr/spacemacs.png?label=Merging...&title=Merging" alt="PR being merged"></a>
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ESFVNPKP4Y742"><img src="https://img.shields.io/badge/Paypal-Donate-blue.svg" alt="Donate"></a>
<a href="http://www.slant.co/topics/12/~what-are-the-best-programming-text-editors"><img src="https://img.shields.io/badge/Slant-Recommend-ff69b4.svg" alt="Recommend it"></a>
</p>
***
2013-11-24 04:00:41 +00:00
2014-11-24 03:42:31 +00:00
**Quick Install:**
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
2014-11-24 03:42:31 +00:00
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-generate-toc again -->
**Table of Contents**
- [Introduction](#introduction)
- [Features](#features)
- [Documentation](#documentation)
- [Getting Help](#getting-help)
- [Prerequisites](#prerequisites)
- [Emacs](#emacs)
- [Linux distros](#linux-distros)
- [OS X](#os-x)
- [Windows](#windows)
- [Install](#install)
- [Default installation](#default-installation)
- [Alternate installations](#alternate-installations)
- [Modify HOME environment variable](#modify-home-environment-variable)
- [Modify spacemacs-start-directory variable](#modify-spacemacs-start-directory-variable)
- [Spacemacs logo](#spacemacs-logo)
- [Update](#update)
2016-01-10 17:42:32 +00:00
- [Automatic update (on master branch)](#automatic-update-on-master-branch)
- [Manual update (on master branch)](#manual-update-on-master-branch)
- [On develop branch](#on-develop-branch)
- [Revert to a specific version](#revert-to-a-specific-version)
- [Quotes](#quotes)
2015-01-06 23:50:20 +00:00
- [Contributions](#contributions)
2016-01-10 17:42:32 +00:00
- [Communities](#communities)
2015-04-08 02:51:21 +00:00
- [License](#license)
2015-04-08 02:00:10 +00:00
- [Supporting Spacemacs](#supporting-spacemacs)
2015-01-06 23:50:20 +00:00
<!-- markdown-toc end -->
# Introduction
2014-10-16 17:03:17 +00:00
Spacemacs is a new way to experience Emacs -- a sophisticated and
polished set-up focused on ergonomics, mnemonics and consistency.
2014-10-16 17:03:17 +00:00
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.
2015-03-29 04:42:37 +00:00
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.
2014-10-16 17:03:17 +00:00
Spacemacs is currently in beta, and contributions are very welcome.
2014-10-16 17:03:17 +00:00
2015-09-28 05:42:55 +00:00
![spacemacs_python](doc/img/spacemacs-python.png)
2014-11-22 21:53:38 +00:00
# Features
2016-01-01 23:22:05 +00:00
- **Great documentation:** access documentation in Emacs with
<kbd>SPC h SPC</kbd>.
- **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 <kbd>space bar</kbd> or <kbd>alt-m</kbd>.
- **Mnemonic key bindings:** commands have mnemonic prefixes like
<kbd>SPC b</kbd> for all the buffer commands or <kbd>SPC p</kbd> for the
project commands.
- **Batteries included:** discover hundreds of ready-to-use packages nicely
organised in configuration layers following a set of
[conventions][CONVENTIONS.org].
2014-11-22 21:53:38 +00:00
# Documentation
2014-11-22 21:53:38 +00:00
2016-01-01 23:22:05 +00:00
Comprehensive documentation is available for each layer by pressing
<kbd>SPC h SPC</kbd>.
2014-11-22 21:53:38 +00:00
To go to the general documentation [click here][DOCUMENTATION.org].
2014-11-22 21:53:38 +00:00
You can also check the [Quick Start guide][QUICK_START.org] and the
[FAQ][FAQ.org].
# Getting Help
If you need help, ask your question in the [Gitter Chat][] and a member of the
community will help you out.
2014-11-22 21:53:38 +00:00
If you prefer IRC, connect to the [Gitter Chat IRC server][] and join the
`#syl20bnr/spacemacs` channel.
# Prerequisites
2014-09-27 02:50:30 +00:00
## 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).
2013-11-23 05:46:33 +00:00
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][build_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][]:
```sh
$ brew tap d12frosted/emacs-plus
$ brew install emacs-plus --with-cocoa --with-gnutls --with-librsvg --with-imagemagick --with-spacemacs-icon
$ brew linkapps
```
*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](#install), it is
also recommended to add the [osx layer][] to your [dotfile][]. Install
instructions are available in the [osx layer][] documentation.
### Windows
Good quality builds can be found [on this page][emacs-for-windows]. 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][so-server-unsafe]
2015-07-04 05:05:27 +00:00
For efficient searches we recommend to install `pt` ([the platinum searcher][]).
`pt` version 1.7.7 or higher is required.
# Install
2013-11-23 05:46:33 +00:00
## Default installation
1. If you have an existing Emacs configuration, back it up first:
```sh
cd ~
2015-10-29 17:38:08 +00:00
mv .emacs.d .emacs.d.bak
mv .emacs .emacs.bak
```
2013-11-23 05:46:33 +00:00
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:
```sh
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
```
2015-09-30 01:42:40 +00:00
`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.
If you get an error regarding package downloads then you may try to disable
the HTTPS protocol by starting Emacs with
```sh
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.
4. Restart Emacs to complete the installation.
If the mode-line turns red then be sure to consult the [FAQ][FAQ.org].
## 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.
```sh
mkdir ~/spacemacs
2016-06-21 20:40:10 +00:00
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`:
```elisp
(setq spacemacs-start-directory "~/.emacs.d/spacemacs/")
(load-file (concat spacemacs-start-directory "init.el"))
```
## Spacemacs logo
If you are using Ubuntu and Unity then you can add the Spacemacs logo by
following the instructions [here][cpaulik-unity-icon].
If you're on a mac follow [these instructions][icon-mac-instructions]. You can
find an .icns version of the logo by [Nasser Alshammari](http://www.nass3r.com)
in [his repository][icon-repository].
2015-06-08 11:23:22 +00:00
# Update
2015-09-23 06:44:01 +00:00
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.
2015-12-01 05:49:31 +00:00
## Automatic update (on master branch)
2015-09-23 06:44:01 +00:00
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.
2016-01-01 23:22:05 +00:00
Green means that your current version is recent, orange and red mean that your
current version is older.
2015-10-02 17:35:43 +00:00
![powerline_update](doc/img/powerline-update.png)
Click on the arrow to update Spacemacs to the last version.
2015-12-01 05:49:31 +00:00
## Manual update (on master branch)
(Remove the angle brackets when typing the lines below into your shell.)
2015-12-01 05:49:31 +00:00
```sh
git fetch
2016-02-15 06:29:59 +00:00
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:
```sh
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`:
```sh
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
2016-01-07 13:21:21 +00:00
[Quote][quote01] by [ashnur](https://github.com/ashnur):
2016-01-07 13:21:21 +00:00
«I feel that spacemacs is an aircraft carrier and I am playing table tennis on the deck as a freerider.»
# Contributions
Spacemacs is a community-driven project, it needs _you_ to keep it up to
2016-03-31 04:15:24 +00:00
date and propose great and useful configuration for all the things!
Before contributing be sure to consult the
[contribution guidelines][CONTRIBUTING.org] and [conventions][CONVENTIONS.org].
2016-03-31 04:15:24 +00:00
Here is a throughput graph of the repository for the last few weeks:
[![Throughput Graph](https://graphs.waffle.io/syl20bnr/spacemacs/throughput.svg)](https://waffle.io/syl20bnr/spacemacs/metrics)
2015-12-01 13:26:32 +00:00
# Communities
- [Gitter Chat]
- [Stack Exchange]
- [Reddit]
2015-04-08 02:51:21 +00:00
# License
The license is GPLv3 for all parts specific to Spacemacs, this includes:
2015-04-08 02:51:21 +00:00
- the initialization and core files
2016-01-01 23:22:05 +00:00
- all the layer files
2015-04-08 02:51:21 +00:00
- 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.
2015-04-08 02:00:10 +00:00
# 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
2015-04-08 02:00:10 +00:00
maintainer by clicking on the [Paypal badge](#top).
2015-11-12 12:12:27 +00:00
If you used spacemacs in a project and you want to show that fact, you can use
the spacemacs badge: [![Built with Spacemacs](https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg)](http://spacemacs.org)
2015-11-12 12:12:27 +00:00
- For Markdown:
```
[![Built with Spacemacs](https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg)](http://spacemacs.org)
2015-11-12 12:12:27 +00:00
```
- For HTML:
```
<a href="http://spacemacs.org"><img src="https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg" /></a>
2015-11-12 12:12:27 +00:00
```
- For Org-mode:
```
[[http://spacemacs.org][file:https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg]]
2015-11-12 12:12:27 +00:00
```
Thank you!
2015-04-08 02:00:10 +00:00
2014-11-19 04:47:30 +00:00
[Twitter]: http://i.imgur.com/tXSoThF.png
[CONTRIBUTING.org]: CONTRIBUTING.org
[CONVENTIONS.org]: http://spacemacs.org/doc/CONVENTIONS
[DOCUMENTATION.org]: http://spacemacs.org/doc/DOCUMENTATION
[QUICK_START.org]: http://spacemacs.org/doc/QUICK_START
[FAQ.org]: http://spacemacs.org/doc/FAQ
[VIMUSERS.org]: http://spacemacs.org/doc/VIMUSERS
[dotfile]: http://spacemacs.org/doc/DOCUMENTATION#orgheadline45
[osx layer]: http://spacemacs.org/layers/osx/README
2014-11-22 21:53:38 +00:00
[Gitter Chat]: https://gitter.im/syl20bnr/spacemacs
[Gitter Chat IRC server]: https://irc.gitter.im/
[homebrew]: http://brew.sh
[emacs-for-windows]: http://emacsbinw64.sourceforge.net/
2015-07-04 05:05:27 +00:00
[the platinum searcher]: https://github.com/monochromegane/the_platinum_searcher
[so-server-unsafe]: http://stackoverflow.com/questions/885793/emacs-error-when-calling-server-start
[Spacemacs logo]: https://github.com/nashamri/spacemacs-logo
[Nasser Alshammari]: https://github.com/nashamri
[cpaulik-unity-icon]: http://splendidabacus.com/posts/2015/03/spacemacs-unity-icon/
[icon-mac-instructions]: http://www.idownloadblog.com/2014/07/16/how-to-change-app-icon-mac/
[icon-repository]: https://github.com/nashamri/spacemacs-logo
2015-12-01 13:26:32 +00:00
[Stack Exchange]: http://emacs.stackexchange.com/questions/tagged/spacemacs
[Reddit]: https://www.reddit.com/r/spacemacs
[quote01]: https://gitter.im/syl20bnr/spacemacs?at=568e627a0cdaaa62045a7df6
[build_source]: https://www.gnu.org/software/emacs/manual/html_node/efaq/Installing-Emacs.html
[Bountysource]: https://salt.bountysource.com/teams/spacemacs