Pre-installλ︎
Spacemacs is a configuration for Emacs, so naturally Emacs should be installed before Spacemacs can be used.
Clojure CLI should be installed to support Clojure development, along with several supporting development tools.
Command Line Tools support searching for files and spell checking.
Install Emacsλ︎
Emacs is available for Linux, MacOSX and Windows. The Spacemacs Readme suggested ways to install Emacs
Emacs Version 29 recommended
Emacs 29.x is the current stable release and includes optomised JSON support which is valuable for Language Server Protocol servers. Native compilation is also supported, although this is still a relatively new approach so there may be issues.
apt-cache show emacs
to check available versions of Emacs in the Ubuntu package manager. If version 29 is available, install Emacs using the Ubuntu package manager.
vterm compile packages
vterm is compiled during the package install when first starting Spacemacs with the Practicalli Spacemaca Config.
Install packages to support compile of vterm
Emacs snapshot packages built from source
Ubuntu Emacs Lisp team Personal Package Archive provides daily snapshot Emacs packages build from the latest changes commited to the Emacs source code repository.
Installing a snapshot package essentially installs the unreleased version of Emacs, e.g. Emacs 30.
apt install emacs-snapshot
package to use the latest nightly build of Emacs, although be aware that some things may break.
Build Emacs 29 from source
Building Emacs 29 from source code on Ubuntu is relatively straight forward task, although it will take a little time to compile. Building Emacs allows customisation of some features, such as native compilatin of elisp to enhance the performance of Emacs.
Emacs Plus from Homebrew provides many options, including native compilation and Spacemacs Icon for application launchers.
Or install with native compilation supportEmacs.app is installed to: /usr/local/opt/emacs-plus@28
Optionally run Emacs plus as a service
Run emacs
If Ntative Compilation option was included, take a break whilst Emacs compiles all the things.
Download Emacs 29 zip archive from the GNU repository for Windows and extract the zip file to %AppData%/local/Programs/emacs
.
Alternatively, if you are using the Chocolatey package manager then install Emacs version 28
Add the Emacs directory to the PATH
variable in your user account environment variables.
To start Emacs run the command runemacs.exe
. You can also pin this to the start menu or task bar.
Access to common Unix tools
Command line tools, such as diff
, are used by Emacs. To have these command line tools available in Windows, install Emacs as above but then run emacs from a Unix shell such as GitBash.
Install Clojure CLIλ︎
Practicalli Clojure Install Guide
Clojure CLI provide a simple and configurable way to:
- Run Clojure programs and tools
- Run an interactive REPL (Read-Eval-Print Loop) and evaluate Clojure expressions, usually with a Clojure aware editor
- Managing dependencies (via tools.deps) from Maven and Git repositories
Using community tools on top of Clojure CLI tools provides tasks to create, develop, build and deploy Clojure applications and services
Follow the Practicalli Clojure Install Guide to install Clojure and supporting tools.
Command Line Toolsλ︎
Emacs uses several external command line tools. There are some very efficient search tools that are recommended (ripgrep, silver searcher).
Consider installing these tools to enhance your Spacemacs experience.
spell checkλ︎
spell-checking layer in Spacemacs supports ispell, hunspell, and aspell command line tools. Aspell is the recommended spell checking tool.
Aspell binary is usually installed on Unix systems by default. Use apt instal aspell
if not already present.
brew install aspell
Text searchλ︎
Search text buffers uses an external search tool. Although grep is available in most operating systems, ripgrep (rg) or silver-searcher (ag) offer far greater performance and have more search options.
dotspacemacs-search-tools '("rg" "ag" "pt" "ack" "grep")
in the Spacemacs configuration defines the order of preference for the search tool to use.
ripgrep (rg) Silver Searcher (ag)
Find filesλ︎
Space p opens the projectile menu for finding files relative to the current project.
Projectile uses the external command line tool find
to index files that are not part of a version controlled project (using git
for projects versioned with Git).
fd
is an external command line binary that is faster than the find
command. If installed, projectile will automatically use fd
instead of find
fd install instructions by operating system
helm-locateλ︎
The locate
binary is used by Space f L (helm-locate
) to find files and directories on the operating system file space.
helm-locate
is the fastest way to search for files across the whole file space on your computer as it uses the updatedb database. Run updatedb
to ensure all files are in the database, especially very recent changes.