A macOS GUI version of the Vim text editor, with native menus, full-screen modes, Touch Bar and macOS system integration.
syl20bnr/spacemacs
A community-driven Emacs distribution that combines Emacs and Vim editing styles with mnemonic key bindings and configuration layers.
- Stars
- 24,545
- Forks
- 4,825
- Open issues
- 62
- Last commit
- 2 days ago
What is it?
Spacemacs is a preconfigured Emacs distribution focused on ergonomics, mnemonic key bindings and consistency. Pressing the space bar opens an interactive menu of key bindings, and commands are grouped under mnemonic prefixes such as SPC b for buffers and SPC p for projects.
It supports both Emacs-style and Vim-style editing, and users can switch between the two or mix them. Functionality is organized into configuration layers that bundle related packages, and the built-in documentation for each layer is reachable from within Emacs. Configuration lives in a single dotspacemacs file written in Emacs Lisp.
Spacemacs requires Emacs 28.2 or later and Git, and it follows a rolling update model from its develop branch. Its key bindings can also be used in IntelliJ, Eclipse and VS Code through separate community projects.
Key features
- 01Mnemonic key bindings grouped by prefix, discoverable through the SPC menu.
- 02Switch between Emacs and Vim editing styles, or mix them.
- 03Configuration layers bundle packages and ship with per-layer documentation.
- 04Single dotspacemacs configuration file written in Emacs Lisp.
- 05Built-in documentation accessible via SPC h SPC.
- 06Automatic package installation on first launch.
Use cases
- Emacs users who want a ready-made, consistent setup without building their own config from scratch.
- Vim users who want to adopt Emacs gradually while keeping familiar modal editing.
- Pair programming sessions where partners use different editing styles.
- Developers who want to learn Emacs through discoverable, mnemonic key bindings.
Quick start
- 1
Install Emacs 28.2 or above with your package manager (e.g. brew install emacs-plus on macOS)
- 2
Clone Spacemacs into your home .emacs.d directory
git clone https://github.com/syl20bnr/spacemacs "${HOME}/.emacs.d" - 3
Launch Emacs and Spacemacs will load
Things to know
- The README describes Spacemacs as currently in beta.
- Native Windows installs are discouraged in favor of WSL2, and may have subtle bugs such as TLS issues.
- Requires Emacs 28.2 or above and git and GNU Tar to be installed first.
Topics
FAQ
- What is spacemacs?
- A community-driven Emacs distribution that combines Emacs and Vim editing styles with mnemonic key bindings and configuration layers. Spacemacs is a preconfigured Emacs distribution focused on ergonomics, mnemonic key bindings and consistency. Pressing the space bar opens an interactive menu of key bindings, and commands are grouped under mnemonic prefixes such as SPC b for buffers and SPC p for projects.
- Is spacemacs free to use? What license does it have?
- spacemacs is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
- Is spacemacs still maintained?
- Actively maintained. The last commit to spacemacs was on Oct 20, 2026.
- What can I use spacemacs for?
- Emacs users who want a ready-made, consistent setup without building their own config from scratch. Vim users who want to adopt Emacs gradually while keeping familiar modal editing. Pair programming sessions where partners use different editing styles. Developers who want to learn Emacs through discoverable, mnemonic key bindings.
- How do I install spacemacs?
- Install Emacs 28.2 or above with your package manager (e.g. brew install emacs-plus on macOS) Clone Spacemacs into your home .emacs.d directory: git clone https://github.com/syl20bnr/spacemacs "${HOME}/.emacs.d" Launch Emacs and Spacemacs will load
- Where can I get spacemacs?
- The source code and installation instructions are on GitHub: https://github.com/syl20bnr/spacemacs
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A web-based visual configuration generator for the Ghostty terminal that exports a minimal config file.
A static analyzer that scans NGINX configuration files for security misconfigurations and common performance pitfalls.
Neovim is a Vim-based text editor refactored for extensibility, with a Lua and RPC API that lets plugins and external UIs drive the editor.
A terminal modal text editor written in Rust, inspired by Kakoune and Neovim, with multiple selections and built-in LSP support.
Vim is an improved, highly configurable version of the classic Vi text editor, designed for fast keyboard-driven editing of code and plain text.