Spacemacs
A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!
Install / Use
/learn @syl20bnr/SpacemacsREADME
<a name="top" id="fork-destination-box"></a> <a href="https://spacemacs.org"><img src="assets/spacemacs-badge.svg" alt="Made with Spacemacs" height="20"></a> <a href="https://www.gnu.org/licenses/gpl-3.0.en.html"><img src="assets/gplv3.png" alt="GPLv3 Software" align="right" height="20"></a> <a href="https://www.twitter.com/spacemacs"><img src="https://i.imgur.com/tXSoThF.png" alt="Twitter" align="right" height="20"></a>
<!-- logo and links --> <p align="center"><img src="doc/img/title2.png" alt="Spacemacs"/></p> <p align="center"> <b><a href="https://spacemacs.org/doc/DOCUMENTATION#core-pillars">philosophy</a></b> | <b><a href="https://spacemacs.org/doc/DOCUMENTATION#who-can-benefit-from-this">for whom?</a></b> | <b><a href="https://spacemacs.org/doc/DOCUMENTATION#screenshots">screenshots</a></b> | <b><a href="https://spacemacs.org/doc/DOCUMENTATION.html">documentation</a></b> | <b><a href="CONTRIBUTING.org">contribute</a></b> | <b><a href="https://spacemacs.org/doc/DOCUMENTATION#achievements">achievements</a></b> | <b><a href="https://spacemacs.org/doc/FAQ">FAQ</a></b> </p> <!-- badges --> <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://discord.gg/p4MddFu6Ag"><img src="https://img.shields.io/badge/chat-on%20discord-7289da.svg" alt="Discord"></a> <a href="https://github.com/syl20bnr/spacemacs/actions/workflows/elisp_test.yml"><img src="https://github.com/syl20bnr/spacemacs/actions/workflows/elisp_test.yml/badge.svg?branch=develop" alt="elisp state"></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="https://shop.spreadshirt.com/spacemacs-shop"><img src="https://img.shields.io/badge/Shop-T--Shirts-blue.svg" alt="Merchandise"></a> <a href="https://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>Quick Start
If you don't have an existing Emacs setup and want to run Spacemacs as your configuration, and if you have all prerequisites installed, you can install Spacemacs with one line:
-
shell:
git clone https://github.com/syl20bnr/spacemacs $HOME/.emacs.d -
Windows PowerShell:
git clone https://github.com/syl20bnr/spacemacs $HOME/.emacs.dIf
HOMEis not set in environment or in registry:git clone https://github.com/syl20bnr/spacemacs $env:APPDATA/.emacs.d
If you do have an existing Emacs configuration, look at the full installation instructions for other options.
Introduction
Spacemacs is a new way of experiencing Emacs -- it's a sophisticated and polished set-up, focused on ergonomics, mnemonics and consistency.
Just clone and 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. Being able to quickly switch between input styles, makes Spacemacs a great tool for pair-programming.
Spacemacs is currently in beta, and any contributions are very welcome.

Features
- Great documentation: access the Spacemacs documentation 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>SPC</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 organized in configuration layers following a set of [conventions ][CONVENTIONS.org].
Documentation
Comprehensive documentation is available for each layer by pressing <kbd>SPC h SPC</kbd>.
You can also check the [general documentation][DOCUMENTATION.org], [quick start guide][QUICK_START.org] and the [FAQ][FAQ.org].
Getting Help
If you need help, ask your questions 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.
Last but not least there are a lot of high class tutorials available on YouTube:
- Jack of Some's [Spacemacs tutorial videos][jack-of-some].
- GDQuest's [Game Design oriented tutorials ][gdquest] to Spacemacs.
- Practicalli's [Clojure tutorials based on Spacemacs][practicalli].
- Eivind Fonn's classic [Spacemacs ABC][eivind-fonn].
Prerequisites
-
A package manager if the OS doesn't have one already.
-
Spacemacs is an extension of a popular text editor called [Emacs][GNU Emacs]. So you'll need Emacs installed first.
Spacemacs requires Emacs 28.2 or above. The development version of Emacs is not officially supported, but it should nevertheless be expected to work.
-
[git][Git] is required to download and update Spacemacs.
-
Tar, in particular [GNU Tar][], is required to install and update Emacs packages used by Spacemacs.
-
(Optional) The default font used by Spacemacs is [Source Code Pro][]. You may customize your own font settings and choose another font. If you want to use this default font, it must be installed.
Spacemacs also uses fallback fonts to ensure certain Unicode symbols it uses symbols appear correctly. The fonts used are determined by the OS:
- Linux: [Nanum Gothic][]
- macOS: [Arial Unicode MS][]
- Windows: [MS Gothic][] and [Lucida Sans Unicode][]
If the mode-line doesn't look similar to the picture at the top of this page, make sure you have the correct fallback font installed.
-
(Optional) Various commands in Spacemacs needs one of the following line searching program:
- [ripgrep (rg)][ripgrep]
- [The silver searcher (ag)][ag]
- [ack][]
- [GNU Grep][] or [BSD Grep][]
Grep is very slow but it's widely available on most systems and is used as an fallback option.
We strongly recommend [ripgrep][] over other line searching programs, for its blazing fast speed. The following subsections helps you to install it.
Linux
-
Most Linux distribution ships a package manager already and if this is the case you are all set for this step.
If it doesn't, you may need to build the softwares mentioned below from their sources.
-
In most distributions, Emacs is installed via an
emacspackage from the package manager.N.B. DO not install [XEmacs][] because it's not supported by Spacemacs. XEmacs is an old fork of Emacs with various [subtle differences][Emacs And XEmacs].
N.B. Some Linux distributions support only Emacs versions older than 28.2. In this case you should [build it from source][Build Emacs from Source] instead.
-
Very likely Git is already installed on your system. Otherwise, you should be able to install
gitfrom your system's package manager. -
Very likely Tar is already installed on your system. Otherwise, you should be able to install
tarfrom your system's package manager. -
(Optional) If Nerd Fonts and Nanum Gothic are available from your distribution's package manager, you should install it there.
Otherwise, the generic way to install it is:
-
Download the latest pre-built
TTFfont from https://github.com/adobe-fonts/source-code-pro/releases/latest and https://fonts.google.com/specimen/Nanum+Gothic. -
Extract the archive and move the font files to
~/.fonts. -
Refresh font cache with:
fc-cache -fv -
-
(Optional) If your distribution is listed [here][ripgrep-installation], follow the instructions. Otherwise, you can download its pre-built binary or build it from source.
macOS
-
The most popular package manager on macOS is [Homebrew][], to install it:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
Several options exist for installing Emacs on macOS:
-
[Emacs Plus][] features [additional functionalities][Emacs Plus features] over base Emacs.
brew tap d12frosted/emacs-plus # install latest stable release, with Spacemacs icon and native compilation brew install emacs-plus --with-spacemacs-icon --with-native-compYou will require the latest version of Xcode Command Line tools, which can be downloaded from the Apple Developer Portal or by running the following command:
softwareupdate --all --install --force -
[Emacs Mac Port][] adds native GUI support to Emacs 28. And the full list of features is available [here][Emacs Mac Port features].
brew tap railwaycat/emacsmacport brew install emacs-mac -
[Emacs for Mac OS X][] is the binary build of GNU Emacs, without any extra feature.
brew install --cask emacs
-
-
To install
git:brew install git -
macOS ships with [BSD Tar][], but there are reports of weird issues so we require [GNU Tar][] instead.
brew install gnu-tar -
(Optional) To install Source Code Pro Font:
brew tap homebrew/cask-fonts brew install --cask font-source-code-proArial Unicode MS is shipped with macOS v10.5 and later so you don't need to install it manually.
-
(Optional) You can install
ripgrep
