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.
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.
Emacs.app is installed to:
Optionally run Emacs plus as a service
If Ntative Compilation option was included, take a break whilst Emacs compiles all the things.
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λ︎
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-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
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.
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
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.