Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


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

Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402 (3 ratings)
Rated 5.0 out of 5
Subscribe to updates I use spacemacs

Statistics on spacemacs

Number of watchers on Github 14331
Number of open issues 1859
Average time to close an issue 1 day
Main language Emacs Lisp
Average time to merge a PR about 18 hours
Open pull requests 543+
Closed pull requests 839+
Last commit almost 2 years ago
Repo Created almost 7 years ago
Repo Last Updated over 1 year ago
Size 37.8 MB
Organization / Authorsyl20bnr
Latest Releasev0.200.13
Page Updated
Do you use spacemacs? Leave a review!
View open issues (1859)
View spacemacs activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating spacemacs for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)
What people are saying about spacemacs Leave a review
Easy and beautiful.
It's an all in one solution for emacs vim keybidings
I love emacs but I love spacemacs even more. Very versitile, configurable and works out of the box. Has a lot of haxorz style.

Made with SpacemacsTwitter


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

Gitter Build Status PR being merged Donate Donate Recommend it

Quick Install:

git clone ~/.emacs.d

Table of Contents


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.



  • 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.


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

You can also check the general documentation, 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.



Spacemacs requires Emacs 24.4 or above. The development version of Emacs (at the time of writing, this is 25.2) is not officially supported, but should nevertheless be expected to work.

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.


The recommended way of installing Emacs on macOS is using homebrew:

$ brew tap d12frosted/emacs-plus
$ brew install emacs-plus
$ brew linkapps emacs-plus

Note: these homebrew commands will install GNU 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 GNU Emacs into Spacemacs.

Note: the proposed emacs-plus tap is identical to the emacs formulae, it just builds GNU Emacs with support of several features by default along with providing Spacemacs icon. See emacs-plus for more information.

Note: to have the title bar match your theme background color, consider using instead:

$ brew install emacs-plus --HEAD --with-natural-title-bars

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.


You can download good quality builds from the emacs-w64 project. It is recommended to install the most recent 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: Stack Overflow

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


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.

  1. Clone the repository:
   git clone ~/.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.

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

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

  1. 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.

  1. 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 ~/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"))

Spacemacs logo

For Ubuntu users, follow this guide to change the logo in Unity.

For Mac users, you need to download the .icns version of the logo, then change the logo on Dock.


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.


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
  1. 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.


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:


 That is all


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



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.

You can show your love for the project by getting cool Spacemacs t-shirts, mugs and more in the Spacemacs Shop.

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](](
  • For HTML:
   <a href=""><img src="" /></a>
  • For Org-mode:

Thank you!

spacemacs open issues Ask a question     (View All Issues)
  • about 3 years FSharp mode auto-completion not working
  • about 3 years Windows - Evil - Projectile seems to crash spacemacs
  • about 3 years I can't open call find-file-at-point with <g f> in Compilation mode
  • about 3 years Haskell snippets are over-indented on every line
  • about 3 years ac-php not working properly
  • about 3 years Strange interaction between chrome, markdown and org layer removes ox-reveal keybinding from export.
  • about 3 years How to enable Rainbow Mode by default?
  • about 3 years `SPC a s i` messes up layout
  • about 3 years Various issues with symbol highlight transient state
  • about 3 years Crash undere Windows10 + Emacs25.1
  • about 3 years Support emacs-gitlab
  • about 3 years REPORTING.template incorrect instructions for submitting bugs
  • about 3 years Motion `g n` not working after `*`
  • about 3 years indent-line-function doesn't work as expected in coffee-mode
  • about 3 years org-store-link stops working with pdf-tools after opening outline.
  • about 3 years Fail to get the ipython version
  • about 3 years `spacefmt` cleanup tool doesn’t like `tree`-like output in source blocks
  • about 3 years Documentation for symbol at point
  • about 3 years Unable to return to previous location with C-t when using cscope
  • about 3 years Emacs users left in vim-y state
  • about 3 years evil-surround breaks the dot operator
  • about 3 years Automatic refresh renders buffer-menu unusable
  • about 3 years Selecting holy mode upon installation will leave emacs in evil mode until restart
  • about 3 years Wifi turns off everytime i start Spacemacs
  • about 3 years Spell checking doesn't work in web mode
  • about 3 years Spotify layer outputting display not ready
  • about 3 years Evil-snipe-mode breaks deer-mode
  • about 3 years persp-mode breaks emacsclient useage
  • about 3 years Org-Mode Evaluation of code disabled
  • about 3 years Error (use-package): org post-:config hook: Unknown keyword: :export-block
spacemacs open pull requests (View All Pulls)
  • Set default values only if not already customized
  • Fixes #5106
  • Exclude untracked files when checking dirty repo
  • [WIP] change OS X installation instructions
  • Add pull request template
  • Fix the change log of release 0.105.11
  • Fixed reversed keybindings for comint-previous/next.
  • Remove references to Solarized themes
  • Add mapping for switching between repl connections.
  • Add `C-[hjkl]` bindings in deft
  • Enable OSX non-native fullscreen on regular builds
  • Change ivy-spacemacs-face to match counsel-M-x.
  • Change helm-themes and counsel-load-theme keybinding to SPC T s.
  • Add Rust support in markdown files
  • [Core] <SPC> f y working in dired buffers
  • Add RMarkdown support to ESS layer.
  • Add C-S-(JK) to helm-follow-action
  • markdown: Add binding for live preview mode
  • Fix scroll transient state
  • Improve toggle-maximize-centered-buffer
  • [WIP] mu4e: Use evil-mu4e to set up keybindings.
  • evil-jumps: Fix old function names
  • mu4e: Don't use maildirs-extension by default.
  • [RDY] Don't set insert-state for emacs users
  • update lua readme
  • rustfmt: Remove obsolete package
  • [RDY]TypeScript layer improvements
  • org: move global keys from :config to :init
  • Allow `tsfmt` to use the local project's config.
  • remove structured-haskell-mode
  • add key binding for projectile-replace-regexp
  • Fix +lang/markdown documentation on promotion and movement keybindings
  • [mu4e] Use new layer format
  • Adds the evil-remap package to spacemacs layers
  • share installed packages among multiple users
  • Add PonyLang mode in Extra langs
  • Fix problems with multi-account setup in mu4e
  • [scala] Add function to insert types and add yank type at point
  • Latex layer: fix the all in one command (~SPC m a~)
  • Add proselint layer
  • Add key binding to toggle clojure-enlighten-mode.
  • Update document for tern configuration for windows.
  • Support plain-text gmail via chrome layer variable
  • Warmly send a lost contributor from the master to the develop branch
  • move org essentials to spacemacs distro
  • [RDY] add go coverage key bindings
  • C-j/C-k bindings in shell only with vim style
  • [ruby-layer] Adding ruby/rspec-verify-directory method
  • Fix rcirc logging where the channel name has '/' in it
  • Make cljr-keybinding-prefix configurable
  • add org2blog
  • use helm-projectile-ag instead of helm-do-ag in projects
  • Improve ivy keybindings for hybrid editing style
  • Update recentf predicate to exclude non-viewed files. [WIP]
  • New layer: column-enforce-mode
  • Disable tilde fringe in shell/comint modes
  • dvorak-layer: remapping some keybindings
  • vim/hybrid: rebind C-k, C-h to M-k, M-h in helm
  • Provide a way to enter the nil perspective
  • [RDY]hide org-mode meta tags in the view-mode
  • Set evil-want-Y-yank-to-eol properly
  • Fix typo in
  • Diminish space-doc-mode lighter
  • Use gometalinter if present.
  • Add keybinding for rotating windows backwards
  • Make matlab quasi-derived from prog-mode
  • spacemacs-evil: add evil-visual-mark-mode
  • Improve .org file formatting tool
  • fix start up error if perforce layer is enabled
  • spacemacs-editing: disable bracketed-paste for 25+
  • Fix ace-delete-window bindings
  • (,r . ,r)
  • Set `comment-inline-offset` to 2 for python-mode.
  • Space-doc package improvements
  • core: make retaining visual mode on shift optional
  • Revamp org-repo-todo
  • Add Pony layer
  • enable c++11 mode in company-clang-arguments if c-c++-enable-c++11 is…
  • expand gtags use to many more languages
  • add an option to use google-c-style in c-c++ mode
  • Enable graphviz mode in org babel blocks
  • Make helm-persp-switch-project inherit helm actions
  • Disable large file check for certain major-modes
  • Add binding for opening tag in another window
  • add more usage for github gist
  • [core] long-lines' toggle now accepts prefix arguments.
  • Fixes for ranger layer to allow dired override
  • Added quick keybinding for toggle-lisp-state
  • Highlight more faces with rainbow-identifiers
  • Fixes #5546 - Set popwin config for Help buffer :noselect t
  • Add Darkokai theme to themes-megapack
  • Disable vim-empty-lines for which-key buffer
  • use flyspell-correct instead of helm-flyspell
  • Fix #5966, slime-eval-last-sexp is not defined
  • Add Fortran layer using the fortpy package
  • Fix #5953, pcre2el should be a post-init in spacemacs-editing.
  • tmux: fix for break in master
  • layouts: add a function to spacemacs-layout layer to open a file in its project
  • Set cscope key bindings to 'SPC m c'
  • core: add another code folding method using origami to spacemacs-editing
  • [WIP] Fixes powerline separators on OS X
  • Add support for fancy frame title (cont'd)
  • [WIP] Fixes #5910 - Realgud layer
  • Fixes #5906 - Fix Initial Scratch Buffer Message.
  • deft: Fix create new file with filter text
  • Fixes #5897 - Fix init error for emacs in terminal mode
  • Extend deft major mode keybindings
  • Allow multiple python test runners and per project test runner.
  • Define new variable: spacemacs-start-directory.
  • [WIP] Bump minimum required Emacs version for Spacemacs
  • Achievement/cobra
  • achievement unlocked by JAremko
  • [ruby layer] Automatically switch from common Ruby compilation modes to interact with a debugger
  • Switch to an alist for startup lists.
  • Use counsel-projectile for projects with ivy.
  • Add additional custom file actions for ivy.
  • Provide additional jump options.
  • Set powershell-indent based off tab-width.
  • Provie additional filetypes for windows scripts.
  • Let "bt" goto todo buffer
  • Define ahk lookup options.
  • Add text object for org-link
  • Add natural layer
  • Fix chineselayer and add ivy-hydra package to ivy layer
  • invalidate projectile cache on delete and rename
  • Consider adding vmd support in markdown mode
  • [react layer] Project wide jump to definition
  • Add hlint-refactor to haskell layer
  • Restore easy ex-command remap
  • [scala] new ensime config command
  • using scala-mode
  • Improve ivy-hydra config
  • Discussion: Move customized settings to custom.el
  • Add beginners tutorial
  • setup keybindings in haskell-debug-mode
  • Fix OSX brew install
  • Improve Installation Guide in README
  • don't ask users to spaceline-compile
  • Evilify indent-rigidly
  • Fix :owner reference in ivy-spacemacs-help
  • Don't un-exclude an excluded package
  • shell: auto-jump to end also in hybrid
  • Fix the loading of `vmd` for daemon mode
  • Exclude org-repo-todo
  • org: explicitly load org-loaddefs.el
  • ipython-notebook: fix loading of keymap
  • swap c-j/c-k in tide reference mode
  • restclient: add key bindings, helm support, and enable autocompletion
  • Support for Hybrid state in Iedit Insert state
  • docker: fix evilification
  • fix spacemacs buffer for -nw and --batch
  • Bind "C-c C-e" to spacemacs/helm-find-files-edit for helm-files buffer.
  • Fix auto complete with key sequence in Hybrid mode
  • keyboard-layout layer
  • [ruby-layer] Adding ruby-refactor package and associated keybindings
  • WIP: Restore SPC f s in ipython notebook layer.
  • Add a new amazing quote from @patrick-motard
  • refine haskell completion backends
  • GNE (Generalized next-error)
  • Auto center spacemacs-buffer on window resize.
  • Reimplement #5339 by justbur to add :packages keyword.
  • New layer: +misc/smart-tabs
  • improve font documentation
  • [shell-scripts] add note about shellcheck
  • Add R to org babel
  • fix home buffer random banner choice
  • Add hook to ediff org files unfolded
  • [scala] Remove unnecessary command
  • replace apostrophes with backticks inside pcases
  • Add duplicate-line-or-region to layer better-defaults
  • org-agenda: Add missed key binding for pomodoro
  • Media layer with EMMS music manager
  • Fixes display of per-binding docs in micro-state
  • Add leader key for projectile-run-shell
  • github: Add bindings for the addition of remotes
  • Update dependency in ipython-noteook layer readme
  • remove old custom layout on override
  • Ignore eww created url directory
  • User configurable default company-backends
  • incorporate new functionality from psc-ide
  • terraform: Add support for reformatting
  • show ielm in a popwin buffer, default in insert-mode.
  • add counsel-dash
  • Prevent find-file-at-point from pinging what looks like domains
  • restclient: add helm support to jump to variable or request
  • restclient: add autocompletion for methods and headers
  • [WIP] proportional font layer
  • add geben to php layer
  • Add lazy installation support for terraform files
  • add github-search to the github layer
  • Add a key combination to format elm files
  • Move exec-path-from-shell to pre step
  • [WIP] Fix #5821
  • Silent `next-error-find-buffer` when no error buffer found
  • Issue template: direct link to bug report template
  • Use --simple-prompt for IPython 5.
  • mute exec-path-from-shell at startup
  • Move usage of spacemacs//restore-previous-display-config to spacemacs-completion (fixes 6598)
  • [WIP] Additional gtags stuff
  • Fix .gitignore to enable submodule update
  • Fix spelling in saltstack layer
  • Fix typo in VIMUSERS Customization section
  • [Complete] Add xwidget layer
  • [scala] Improve documentation for scalastyle using flycheck
  • [scala] Update scala and ensime logo
  • Fix possibly calling bad code after theme change
  • Revert #6576; TL;DR: We no longer need to do this.
  • Add a new amazing quote from @patrick-motard
  • Generate mmm-modes automatically based on a list
  • Allow to pin packages to specific archive
  • Set buffer-predicate to spacemacs/useful-buffer-p
  • Add hoon-mode.el layer
  • Change multi buffer search to use swoop
  • Add omtose-phellack-theme variant support
  • clean-aindent-mode is global
  • Fix dot completion bug in scala mode
  • Replace py-yapf with yapfify.
  • Correct key binding
  • Fix docs link to themes-megapack
  • Update ensime buffer name
  • space-doc/centered-buffer improvements.
  • Reduce yas loading warning
  • Add eclimd support to Java layer
  • auto-complete not working in php
  • Fix broken links in the docs
  • Add permalinks to the doc headings
  • Move helm-popwin display config to helm layer
  • Set desktop-dirname during init
  • rails: add which key prefixes for rails
  • elm: Add 'SPC m h d' keybinding for doc-at-point.
  • move the eshell-z history file into the eshell cache directory
  • scala: add SPC m x for sbt-hydra
  • Comment corrections and two functions reordered
  • Make swoop optional and helm-ag follow
  • Update - missing doc for #6027
  • Add option for helm fuzzy matching
  • move eshell company post-config to post-init
  • Fix #6704: don’t use evil-open-below/above
  • Add mu installation note for OSX/Homebrew users
  • [scala] Disable Ensime autostart
  • Prefer $SPACEMACDIR/init.el over ~/.spacemacs
  • Add ReST layer
  • Fix asciidoc demote function name
  • Fix description: command of generating TOC
  • layouts: fix B b b not restricting to layout-local buffers
  • Share installed packages among multiple users
  • Automatically toggle emacs-state when artist-mode is toggled
  • nixos: inhibit spacemacs indation in nix-mode
  • clojure: Add more SPC m bindings
  • Further improve gtags layer
  • Add package archive fallback mechanism
  • Refactor jump to definition
  • Add protobuf layer
  • go: replace deprecated oracle with guru
  • OCaml: Add a binding for listing occurrences of identifier under point
  • Disable smartparens highlighting by default
  • refactor spacemacs-buffer/goto-buffer: fix logic flaw, center in terminal
  • Add transmission layer.
  • Common-lisp layer slime-company integration.
  • Fix documentation on Workspace mini state
  • Workaround org-ref issue
  • Fix a typo in the version switching message
  • Completed instructions for a quick start with boot
  • Move org-async-init.el into org/local dir
  • Add language layer for Protocol Buffers.
  • Three words spellchecked in two files
  • Evil Nr TS, added 0..9 prefix and q quit
  • Common Lisp: enable fuzzy matching with comapny
  • Add Colemak layout to keyboard-layout layer
  • org: Add org-expiry
  • Buffer TS, :doc section, missing slash, 2 spaces
  • Adjust or center startup lists in home buffer
  • react: improved react file recognition
  • Fix #6947 by deriving conf-mode from text-mode
  • Rename ido ms -> ts
  • Describe scss-lint setup in the html layer documentati #5636
  • Add system-configuration-features to spacemacs/report-issue #6420
  • Replace org-set-tags when ivy layer is used
  • elixir: flycheck on idle
  • add fill-or-unfill function
  • Option to choose intepreter for python-execute-file
  • Add missing prefices for js2-mode
  • Rust: Add binding for describing symbol at point
  • add glsl-company to shaders layer
  • Match entire path after -I for passing to expand-file-name.
  • A more intuitive window-split-right key binding
  • Fix connecting to default servers with TLS more than once with ERC
  • New debug layer
  • fix neotree duplicate function comment
  • Fix plantuml org-babel loading
  • Fix usage of gorename on symlinked projects
  • Check package excluded property before toggle
  • Higher visibility warnings + check if layers changed outside dotspacemacs/layers
  • Add parinfer layer
  • Fix unclosed strings in spacemacs.template
  • Add support for the Workman keyboard layout
  • New option: auto-generate layout names
  • better-defaults layer: update emacs logo
  • Moved rebox to be under tools, as per documentation
  • Update documentation for Go-Guru switch
  • [scala] update scalastyle-flycheck instructions
  • git: hook fci-mode only when fci package is used
  • golden-ratio: add to window TS only when used
  • Make ivy restrict buffers to layout
  • [scala] evilify ensime search
  • Move vi-tilde auxilliary functions to spacemacs-evil
  • Fix typo in ruby layer README
  • Initial stab at a flow-type layer
  • Process user-config before command line arguments
  • Mention mode line support for org clock in docs
  • Add phoenix layer
  • Fix inconsistent org mode key bindings
  • fix broken macOS paths for homebrew service
  • Fix typos
  • Add cmake-ide to lang/c-c++ layer
  • go-guru on MELPA
  • replaced "uninstall" with "delete" in comments on dotspacemacs-install-packages
  • [Python Layer] Autoload feature for local virtualenv
  • FAQ: add "where to learn elisp" entry
  • Fix python path with virtualenv on Windows in Python nose package
  • Use verbatim markup for the flake8 package name
  • Use projectile-rails-global-mode if available
  • [docs] Fix parentheses
  • Map {j,k} to {next,previous}-error-no-select in anaconda-mode-view-mode
  • Added hide-others shortcut to osx layer
  • don't show warning on layout key clashes
  • FAQ: Fix git clone command for trying Spacemacs
  • Add a layer for the vala programming language
  • Enable flycheck in the systemd layer
  • More visible error in case of version mismatch
  • Overhaul transient buffer
  • Move helm specific layout transient state keybindings to helm layer
  • Change default fringe color for centered-buffer-mode.
  • [keyboard-layout] Saner drovak defaults
  • WIP add support for ripgrep, fixes #7370
  • Reliable loading of custom-file after load
  • Do not override user customisation of projectile on windows.
  • add some notes on ivy usage
  • Remove trailing whitespace from all files
  • New mercurial source-control layer
  • Rust layer - Fix error message about no eldoc support
  • Add an example for non-standard node bin locations
  • Fix for #7383
  • Add goto definition and find references keybindings to tsx files in typescript layer.
  • non-restricted-buffer-list-* to SPC B b instead of SPC B b and change which-key names
  • Integrate ahs with evil as well as isearch
  • bind helm-cscope-find-assignments-to-this-symbol
  • keyboard-layout: fix twittering-mode defun name
  • Removed deprecated insert-string and replace by insert
  • finer configuration of line numbers activation
  • Python: search for Pylint and Flake8 in the virtualenvs
  • Python: Highlight wdb breakpoints as well as pdb/ipdb/pudb
  • Add Spacemacs docker distribution
  • Make org-mode restart on theme change.
  • Fix bug in org layer
  • Update ensime variable name
  • Fix terminal RET and TAB in layouts/workspaces transient state
  • Add clang-format-buffer to c-c++ layer
  • add refactoring for go-mode
  • Make org-edit-src keybindings more similar to keybindings in similar situations (for example in magit git-comit)
  • Restore smart closing paren behavior in racket-mode
  • More robust dotspacemacs/add-layer
  • Fix Layout Transiet Menu's docstring
  • Expanded theming README file with an example
  • Clarify the intentions of Quick Install
  • Mark tern command as async. Fixes #7591.
  • Adds docs to ruby-refactor work
  • gtags: don’t check if mode function is bound
  • Add requirements list for D
  • Check toggle condition in status function
  • Clean up elixir layer documentation
  • Add layer for Semantic Web formats
  • Restclient: don't hijack "ji" global keybinding
  • home-buffer: fix error on footer insertion when window is narrow
  • Add langtool style and grammar checker for 25 lang
  • Adds tide keybindings to tsx web mode
  • python: fixes for anaconda-mode-view-mode
  • Go : Update documentation for fixing autocomplete issues
  • Fix README to say auto-fill on by default.
  • ivy: add and bind spacemacs/counsel-find-library to "fel"
  • engine-mode: Fix url to search engine github repository
  • GNOME Adwaita dark window decorations
  • Fix a syntax error in colors package's
  • Update
  • which-key: Implement combined select window keys
  • link to ensime caveats for spacemacs
  • Use `RET` instead of `return` for return key
  • Fix code markup
  • Count of killed matching buffers
  • Remove sbt-hydra rename wrapper
  • docs: correct keybinding for `helm-resume`
  • Use proper markup to preserve meaning of code
  • Remove unnecessary parameter to cider-test-run-project-tests
  • Fix python-enable-yapf-format-on-save
  • [scala] Make ensime use stable version as unstable is for ensime devs
  • Protobuf support in extra-langs layer
  • fixed syntax highlight in README
  • Ocaml layer init without opam.
  • sql: support for keywords auto capitalization
  • Fix Clojure layer cider-repl-mode keybindings
  • Fix hyperlinks in restclient README
  • Use "non-nil" in .spacemacs.template
  • Fixed a typo
  • add company-php package to php layer
  • a realtime markdown preview using chrome
  • Fix number of arguments in calling cider-test- funcs
  • transient-state: Improve handling of additional bindings
  • fix ranger with golden-ratio activated
  • throw a real error if emacs version is too old
  • Make python-execute-file use python-shell-interpreter
  • Bind space-doc-mode to "SPC m v" in Org
  • Add missing "m key" to debugging and help base prefix
  • Fix broken links to "Search in Project section"
  • Add binding to open cargo docs in Rust layer.
  • Adding additional go test functionality
  • Fix notation inconsistencies
  • also provide align functions for {, }, [ and ] under SPC x a
  • Make links relative, edit wording in beginners tutorial
  • Highlight ruby debugger keywords
  • mu4e: Create email with attachments from dired
  • Update window manipulation transient state formatting
  • Fix in python layer
  • Update buffer transient state formatting
  • select neotree window with backtick key
  • Add string inflection to spacemacs-editing
  • Update
  • org: bind org-refile from 'R' to 'r'
  • Fix elm to not switch to root directory
  • Add manual completion function to ycmd layer
  • Fix ivy wgrep when used with rg
  • Add LFE layer
  • Add rebecca theme
  • add debug layer
  • Mastodon Layer
  • Allow customizing if ENSIME should print types at point
  • [elixir] Add missing Alchemist commands and key bindings
  • In M-x shell, set tab-width to 8 spaces
  • Haskell: use intero-goto-definition for jump handler if intero-mode is enabled.
  • Core: add support for building multi-file local packages with Quelpa
  • A perl5 layer with material from perlnow and bioperl.
  • add dante support to haskell layer
  • [enhancement] OSX Layer. change osx-command-as default for ⌘ to hyper instead of super
  • Add Habitica support for org mode
  • evilify ensime search
  • adds prodigy-view-clear-buffer leader key binding
  • Add the org-brain layer
  • Unbreak diff-mode
  • [javascript,html,react,typescript] Use add-node-modules-path to automatically find local executables
  • add bm layer
  • Rewrite sudo-edit
  • layers/+lang/perl5
  • Add a gentoo/ebuild layer
  • Load org-mode email integration (mu4e/notmuch) when org is loaded.
  • Add evil-lion
  • [WIP] Add pippel to Python layer
  • Add sayid, a debugger, to the clojure layer
  • Allow 'w','b','j' and 'k' movements inside evil-numbers-transient-state
  • [enhancement] OSX Layer. add config variables for different OSX modif…
  • Update which-key popup: key/command grouping
  • Add key binding collision test[WIP]
  • Combine 2 projectile spacemacs/set-leader-keys sections
  • Added keybindings for group-select (private channels) and select-rooms (channels, ims, and groups)
  • add a feature to save file as a new file and open it in a new buffer
  • Add tldr layer
  • [slack] Add key binding to add reaction
  • Remove SPARQL from extra-langs
  • [python] Prefer virtualenv python to compile file
  • Add a layer for LanguageTool support
  • Add X clipboard support layer for terminal emacs.
  • search compile_commands.json in build subdir
  • Add layer for orgwiki package
  • bibtex: add key bindings
  • fix ycmd and company-c-header conflict
  • add dart layer
  • improve typescript tsx support
  • Added layer for synchronizing google-calendars to emacs
  • Set leader keys for projectile-rails minor mode instead of ruby's maj…
  • Lisp mode more like iedit-mode
  • Added makepkg layer for editing Arch Linux PKGBUILD files
  • spacemacs-navigation: Use centered-cursor-mode from MELPA
  • Ocaml layer: enable ocaml-flycheck package via variable
  • haskell: Add function for proper import reformatting
  • Add +tools/lsp-python layer
  • core: Revert "Inhibit recentf when inserting startupify lists"
  • Add +tools/cquery layer
  • Add shell-default-width configuration option for left/right side
  • Add Layer for the Factor Programming Language
  • Make nimsuggest-doc-mode-map as overlay
  • clojure: Enable safe structural editing for cljs and cljc
  • Adds magit-diff-buffer-file-popup key
  • Add +tools/lsp layer for lsp-mode & lsp-ui
  • Clojure connection browser: add key bindings
  • Add evilification of mini-buffer, including helm
  • Add YANG support layer.
  • [WIP] purpose: Add chat and mail purposes
  • Add a default value for kbd-mac-command
  • Add helpful layer
  • Add sailfish-developer layer
  • Reenable magithub
  • Add dotnet cli layer
  • core: add reference handler as per jump handler
  • Add eww layer
  • Fix excessive memory usage on first startup
  • improve recognition of react-mode
  • Add basic JSonnet layer provided by jsonnet-mode
  • Update haskell setup-intero func
  • Add support for editing .vue components
  • colors layer: use nyan-mode from melpa
  • Add alex-hhh's sql-indent in place of mepla sql-indent
  • Feature: Add "send to buffer" leader key in ruby layer
  • Enable scrolling in mu4e main mode
  • Adding support for highlighting and inserting breakpoints for the tre…
  • Configure rg max column number for search.
  • Update
  • python: add pipenv. unified prefix for pyenv, pyvenv, pipenv
  • Adding use-package-chords to bootstrap.
  • fix: Rename deprecated cider function
  • Lastest is a typo
  • General solution for underscores in word-motions
  • Make the Emacs server optional
  • Wrap init in file-name-handler-alist nil to speed it up
  • fix: ycmd don't search for compilation DB in subfolders
  • Fix typo in clojure/README
  • Fix rcirc README to ensure you can login
  • add xref integration for ess
  • CMake layer: minor bug fix
  • Add defun spacemacs/python-test-last
  • Smarter upcase function for keyboard-layout layer.
  • add yas-activate-extra-mode command when init yasnippet
  • Add layer to view EPUBs via nov.el
  • javascript: Add variable to disable tern warning at startup
  • Added dvorak right handed to keyboard layout layer
  • Re-enable Wolfram-mode, since it is added back to Melpa.
  • Add various keycommands to markdown layer.
  • Make fcitx.el in Chinese layer work by default.
  • make shell pop layout local
  • c-c++: remove c-c++-enable-c++11
  • Remove spacemacs//c-toggle-auto-newline
  • add-company-backends must be called at post-init-company otherwise w…
  • Add Julia layer separate from ESS
  • fix problem: c-c++-enable-clang-format-on-save not work
  • Allow setting of server-socket-dir in .spacemacs
  • recentf : use recentf-expand-file-name to generate recentf-exclude
spacemacs questions on Stackoverflow (View All Questions)
  • How to set the default mode of file in spacemacs?
  • How to disable continuous movement in spacemacs via cursor movement keys?
  • Spacemacs Org Mode: Targets not appearing in refile
  • spacemacs installation: Git-gutter and helm
  • ESS and R from spacemacs
  • Spacemacs hybrid line numbers
  • Leader Key Shortcuts in Spacemacs
  • Preparing for Aquamacs install after running Spacemacs
  • autopep8 reformat a region in emacs/spacemacs
  • Update linum and linum-relative background on color theme change in emacs/spacemacs
  • How do I configure spacemacs for python 3?
  • How can I reload .spacemacs file after editing without restart emacs?
  • Using subversion with spacemacs
  • Spacemacs configuration in ORG mode
  • Spacemacs Magit mode magit-refresh
  • Get Spacemacs/Emacs GUI version to recognize nix-shell environment
  • What's the best way to override a default key binding in spacemacs?
  • Install GitHub hosted packages in Spacemacs
  • change default indention in Javascript-IDE spacemacs
  • emacs +spacemacs + ess layer + julia lang - How to make working autocomplete in file
  • Spacemacs escape key needs delay to work
  • Not able to set the indent size in spacemacs
spacemacs list of languages used
spacemacs latest release notes
v0.200.13 Version 0.200.13


  • Remove ess-R-object-popup from ess layer (thanks to NGaffney)
  • Remove wolfram-mode package from extra-langs (thanks to bennofs)
  • Import info+.el as local package
  • Import help-fns+.el as local package
  • Import hide-comnt.el as local package
  • core: fix not found packages with dotspacemacs-install-packages all
v0.200.12 Version 0.200.12


  • Use HTTPS instead of HTTP for ORG ELPA repository (thanks to aaronjensen)
v0.200.11 Version 0.200.11


  • Fix helm display function (thanks to jackkamm)
  • Fix anaconda-mode variable names in Python layer (thanks to nixmaniack)
  • Fix typo in helm-cscope-find-calling-this-function (thanks to dubnde)
  • Use org-mime package from MELPA (thanks to jackkamm)
  • Replace broken helm-spotify package by helm-spotify-plus (thanks to leezu)
  • Update Quelpa library
  • Backport up to date list of themes in core and themes-megapack layer.
  • Fix pyim package name in Chinese layer (thanks to James Wang)
Other projects in Emacs Lisp