Why would you use Spacemacs over configuring your own Emacs setup? Here are a few hightlights
Spacemacs is fast
The startup for Spacemacs is really quick, less than 2 seconds, even after adding a whole host of features (layers). Some of this speed may be due to the lazy loading approach that Spacemacs takes. In the best tradition of Lisp, some things are only loaded in Spacemacs when they are first used. For example, when you open a Clojure source code file for the first time, the Clojure layer is loaded and clojure mode is applied.
Navigating with Which Key & Helm
Developers drive Emacs with keybindings or use commands via
M-x. The more features you add to Emacs, the more keybindings and commands you have at your fingertips. So to manage all this power, Spacemacs uses Which Key & Helm to organise these keybindings and commands into groups.
Helm also helps you navigate the file system too, minimising the need to type directory and file names in full.
Commands are grouped by their nemonic character, for example
g- git/version control
Helm is an incremental completion and selection narrowing framework. Its the central control tower of Spacemacs, it is used to manage buffers, projects, search results, configuration layers, toggles and more.
Once you have learnt the Spacemacs groupings for Helm its really fast to do anything, so take a look at the Helm documentation wiki.
You can still type in command names using
M-x command-name too, if you know the name of the command you are looking for.
ido mode is still available in Spacemacs but by default it is over-ridden by Helm. You can enable ido using
dotspacemacs-use-ido tin the
.spacemacs, however this only replaces a few commands.
Other features of Spacemacs
Each buffer gets a number in the status bar, allowing you to jump to any buffer using
SPC and the buffer number, eg.
SPC 3 jumps to buffer number 3.
Smartparens and symbol balancing/highlighting
Smartparents helps speed up typing and reducing errors due to unmatched symbols. For most symbols in most modes a matching symbol is created. So if you type
( then a matching
) is created too. If you want to surround some existing text with a symbol pair, then simply highlight the text and press the opening symbol. A closing symbol is also highlighted when the cursor is at the opening symbol. Spacemacs also highlights the surrounding symbols, including any parents. So if you are in a nested list,
(parent code (nested code)), then if the cursor is on the nested code, both nested & parent symbols are highlighted.
Unlike the traditional jump-scrolling of Emacs, Spacemacs uses smooth scrolling as you fing in most other text editors.
Editor styles - Evil or Holy modes
You have the choice of using either Vim or Emacs keybindings for your edior. Or you can have both and switch between the two with
Regardless of your choice, you can still use all of the features of Spacemacs via the command menu
Vim is arguably faster, especially once you get used to multi-mode editing (switching between normal & insert mode). This speed is in part due to simpler keybinding when in normal mode as you are not typing content into the editor, simply running commands with each key press. This means you can have single characters to do many of the common commands, eg
l instead of
C-f for moving the cursor forward.
If you are familiar with Emacs keybindings, then probably best to stick to holy mode. If you are new to Emacs or you just want to take advantage of Vim, then select Evil mode.