5ce944a1da
This commit improved both the layer documentation of pop window configuration and docstring of relavant layer variables. |
||
---|---|---|
.ci | ||
.circleci | ||
.github | ||
assets | ||
core | ||
doc | ||
layers | ||
news | ||
private | ||
tests | ||
.gitignore | ||
.lock | ||
.projectile | ||
CHANGELOG.develop | ||
CHANGELOG.org | ||
COMMUNITY.org | ||
CONTRIBUTING.org | ||
COPYRIGHT | ||
dump-init.el | ||
early-init.el | ||
EXPERIMENTAL.org | ||
init.el | ||
LICENSE | ||
README.md | ||
spacemacs.mk |
philosophy | for whom? | screenshots | documentation | contribute | achievements | FAQ
Quick Install
This assumes you don't have an existing Emacs setup and want to run Spacemacs as your config. If you do have one, look at the full installation instructions for other options.
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
-
Windows Command Prompt:
git clone https://github.com/syl20bnr/spacemacs %appdata%/.emacs.d
-
Windows PowerShell:
git clone https://github.com/syl20bnr/spacemacs $env:appdata/.emacs.d
Table of Contents
- Introduction
- Features
- Documentation
- Getting Help
- Prerequisites
- Install
- Update
- Quotes
- Contributions
- Communities
- Spacemacs Everywhere
- License
- Supporting Spacemacs
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 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.
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.
Last but not least there are a lot of high class tutorials available on YouTube:
- Jack of Some's Spacemacs related channel here
- GDQuest's Game Design oriented tutorials to Spacemacs here
- Practicalli's Clojure tutorials based on Spacemacs here
- Eivind Fonn's classic Spacemacs ABC here
Prerequisites
Spacemacs is an extension of a popular text editor called Emacs. Thus you need to first install base Emacs and then download the Spacemacs extension files with Git.
Emacs
Spacemacs requires Emacs 27.1 or above. The development version of Emacs is not officially supported, but it 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 the emacs
package with your linux distributions package manager.
Do not install the xemacs
package. It's not supported by Spacemacs. XEmacs is
an old fork of Emacs. The X in its name is unrelated to X11.
Emacs has graphical support.
Note: Some linux distributions support only Emacs versions older than 27.1. In this case you should build from source instead.
macOS
Install emacs
Using emacs-plus
brew tap d12frosted/emacs-plus
# to install Emacs 27
brew install emacs-plus@27 --with-spacemacs-icon
# or to install Emacs 28
brew install emacs-plus@28 --with-spacemacs-icon
brew link emacs-plus
Using emacs-mac
brew tap railwaycat/emacsmacport
brew install emacs-mac
brew link emacs-mac
Using cask
Homebrew now recommends to use the cask version with the following message: "Please try the Cask for a better-supported Cocoa version". To install the cask version:
brew install --cask emacs
This installs a pre-built package from https://emacsformacosx.com/
Other ways
If you're not comfortable with the ways mentioned above, then EmacsWiki lists down a few ways to install Emacs for macOS.
Install Source Code Pro font
Once Emacs is installed, run the following commands in the terminal to install the default Source Code Pro font:
brew tap homebrew/cask-fonts
brew install --cask font-source-code-pro
Install Spacemacs
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
Notes:
It's also recommended to add the osx layer to your dotfile after completing the Spacemacs install process. Instructions on how to do so are available in the documentation for the osx layer.
Depending on the installed version of GnuTLS, securely installing emacs packages
may fail. In this case it is possible to install using emacs --insecure
.
However, be aware that this means your packages will be transferred using http,
use at your own risk.
You may also have some issues when searching for your projects. It is recommended to install the GNU ripgrep through homebrew:
brew install ripgrep
Windows
Download the official 64-bit (x86_64) stable builds from the GNU FTP.
You'll also need gzip
and put it in your path. Download it from the GNUWin32
project page
Install Spacemacs in Windows
By default, Emacs looks for the .emacs.d
directory in:
C:\Users\<username>\AppData\Roaming
-
Clone Spacemacs to the Roaming directory:
-
Windows Command Prompt:
git clone https://github.com/syl20bnr/spacemacs %appdata%/.emacs.d
-
Windows PowerShell prompt:
git clone https://github.com/syl20bnr/spacemacs $env:appdata/.emacs.d
-
-
Or if a
HOME
environment variable has been configured that points to your user directory:C:\Users\<username>
Clone Spacemacs to the
<username>
directory:-
Windows Command Prompt:
git clone https://github.com/syl20bnr/spacemacs %homepath%/.emacs.d
-
Windows PowerShell prompt:
git clone https://github.com/syl20bnr/spacemacs $home/.emacs.d
-
Notes
-
If the following error occurs after starting Emacs:
The directory ~/.emacs.d/server is unsafe
Fix it by changing 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 installing ripgrep.
-
Depending on the installed version of GnuTLS, securely installing emacs packages may fail. In this case it is possible to install using
emacs --insecure
. However be aware that this means your packages will be transferred using http, use at your own risk. -
The period (dot) before a file or folder name means that it's a hidden file or folder. To show hidden files and folders:
- Press the Windows key
- Type
File explorer options
- Select the
View
tab at the top - Check
Show hidden files, folders and drives
- Click
OK
Install
Default installation
-
If you have an existing Emacs configuration, back it up first by running the following code in your terminal:
cd ~ mv .emacs.d .emacs.d.bak mv .emacs .emacs.bak
Don't forget to backup and remove the
~/.emacs
file. Otherwise Spacemacs WILL NOT be able to load. This is because that file will prevent Emacs from loading the proper initialization file. -
Clone the repository with Git:
Note: Windows users, see Windows section.
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
Or in case you have a limited internet connection or speed,
git clone --depth 1 https://github.com/syl20bnr/spacemacs ~/.emacs.d
-
(Optional) Install the default fonts
It's recommended to install Source Code Pro by Adobe as the default font. It ensures that, for example, the symbols on the mode-line (bottom bar) looks correct. It's also recommended to use a "Fallback font". These depend on the system:
- GNU/Linux: NanumGothic (package named fonts-nanum on Debian, for example)
- macOS: Arial Unicode MS
- Windows: MS Gothic or 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.
If you're running in a terminal, then you'll also need to change the terminal's font settings.
-
Launch Emacs. Spacemacs will automatically install the packages it requires.
-
Once the packages are installed, answer the questions in the Dotfile wizard installer. If you are new to Emacs and Spacemacs, then it's fine to just accept the default choices. It's easy to try the other choices later, without having to reinstall Spacemacs. They can be changed in the dotfile
~/.spacemacs
. -
After answering the questions, Spacemacs will download and install the remaining packages it will require. When the all the packages have been installed, restart Emacs to complete the installation.
Notes: If you are behind a firewall or similar and you get an error regarding package downloads then you may try to disable the HTTPS protocol by starting Emacs with
emacs --insecure
but this should be a last resort because of the security implications.
You can set the dotspacemacs-elpa-https
variable to nil
in your dotfile
~/.spacemacs
but this has the same security implications as the insecure flag.
You may also want to clear out your .emacs.d/elpa
directory before doing this,
so that any corrupted packages you may have downloaded will be re-installed.
error: Package 'package-build-' is unavailable
may occur due to heavy network
taffic. You can fix it by setting the dotspacemacs-elpa-timeout
variable to
70
in your dotfile.
Warning (bytecomp)
and other compilation warnings are perfectly normal. If
you're curious, you can find out why these occur here.
If the mode-line turns red, then be sure to consult the FAQ.
Alternative installations
Currently, there are two supported locations for you to place your Spacemacs configuration files.
Modify HOME environment variable
This solution is ideal for quickly trying Spacemacs without compromising your
existing configuration. Clone Spacemacs outside the Emacs dotdirectory
~/.emacs.d
and modify the HOME environment variable.
mkdir ~/spacemacs
git clone https://github.com/syl20bnr/spacemacs.git ~/spacemacs/.emacs.d
HOME=~/spacemacs emacs
Note: If you're using the Fish shell, then you'll 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.
If you've cloned Spacemacs into ~/.emacs.d/spacemacs/
, then drop the following
lines in the ~/.emacs.d/init.el
file:
(setq spacemacs-start-directory "~/.emacs.d/spacemacs/")
(load-file (concat spacemacs-start-directory "init.el"))
Spacemacs logo
For Linux users, create spacemacs.desktop
in ~/.local/share/applications/
using this .desktop file as a reference. Change the Name
parameter to Name=Spacemacs
and the Icon
parameter to
Icon=/PATH/TO/EMACSD/core/banners/img/spacemacs.png
where PATH/TO/EMACSD
is
the path to your .emacs.d
directory, usually ~/.emacs.d
or
~/.config/emacs
.
For macOS users, you need to download the .icns version of the logo and simply change the logo on the Dock.
Update
Spacemacs supports two different update schemes, the default is a rolling update
scheme based on the latest version of packages available. This version can be
found on the develop
branch and is updated by a simple git pull.
The second method is deprecated. It was a fixed version scheme which was based
on a stable set of packages. The latest fixed version can be found on the
master
branch and would show a notification when a new version is available.
Be warned that this method has not been updated in a long time, so packages will
be very old.
Rolling update (on develop)
-
Close Emacs and update the git repository:
git pull --rebase
-
Restart Emacs to complete the upgrade.
Deprecated automatic update (on master branch)
When a new version is available, a little arrow will appear in the mode-line.
Its color depends on the number of versions that have been released since the last update. Green means that you have a recent version, orange and red means that you have an older version.
Click on the arrow to update Spacemacs to the latest version.
Manual update (on master branch)
Remove the <
and >
angle brackets when you're typing the lines below into
your shell. Make sure to also replace the text: "tag version which you are
updating to" with a tagged version. This page lists the latest tags
git fetch
git reset --hard <tag version which you are updating to>
Revert to a specific version (on master branch)
To revert to a specific version, just checkout the corresponding branch. For
instance, the following command reverts Spacemacs to version 0.200
:
git checkout origin/release-0.200
After updating Spacemacs (either manually or automatically), you should also
check if any updates are available for your packages. On the Spacemacs Home
Buffer SPC b h, click (press RET) on the [Update Packages]
button, or use the convenient keybinding SPC f e U
Quotes
«I feel that spacemacs is an aircraft carrier and I am playing table tennis
on the deck as a freerider.»
«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 to propose great and useful configurations for all the things!
Before contributing, be sure to consult the contribution guidelines and conventions.
Communities
Spacemacs Everywhere
Once you've learned the Spacemacs key bindings, you can use them in other IDEs/tools, thanks to the following projects:
- Intellimacs - Spacemacs' like key bindings for IntelliJ platform
- Spaceclipse - Spacemacs’ like key bindings for Eclipse
- SpaceVim - A community-driven modular vim distribution
- VSpaceCode - Spacemacs’ like key bindings for Visual Studio Code
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.
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, then 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:
-
For Markdown:
[![Built with Spacemacs](https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg)](https://develop.spacemacs.org)
-
For HTML:
<a href="https://develop.spacemacs.org"><img alt="Built with Spacemacs" src="https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg" /></a>
-
For Org-mode:
[[https://develop.spacemacs.org][file:https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg]]
Thank you!