Editors for Clojure developmentλ︎
The best editor to use for learning Clojure is the editor already familiar with (or want to learn).
Use SublimeText & ClojureSublimed if unsure where to start as it will be the simplest tool to use.
Clojure editor featuresλ︎
An ideal Clojure editor includes the these core features
- running / connecting to a REPL process
- evaluation results inline or in a repl window (fast feedback on what the code does)
- syntax highlighting (including highlight of matching parens)
- structural editing to ensure parens are balanced when writing and refactor code
- data inspector to visualise large and nested data, or connection to (external data inpector tools)
Clojure aware editorsλ︎
Emacs (Spacemacs, Doom, Prelude), Neovim (Conjure) and VSCode (Calva) are the most common open source Editors for Clojure and ClojureScript development.
SublimeText and IntelliJ are commercial editors (with limited free editions) which also provide Clojure support
Emacs is a very powerful editor with thousands of packages enabling a person to do almost any digital task concievable. Emacs is highly extensible via the ELisp programming language used to write configuration and the numerous Emacs packages.
Use one of the popular community configurations for Emacs or visit the CIDER documentation to learn how to add Clojure support to Emacs.
Emacs 28 onward uses Native Compilation of Emacs packages, dramatically speeding up many common tasks and keeping Emacs a valuable option for development (and everything else).
Emacs uses CIDER and Clojure LSP for a feature rich clojure development experience.
Spacemacs is a community configuration bringing Emacs features and Vim sytle editing together. Spacemacs uses a mnemonic menu system that makes it easy to learn and provides detailed documentation for configuring and using Emacs.
Practicalli Spacemacs provides a guide to Clojure development, vim-style editing, documenting with org-mode, Git version control with Magit, Issues & Pull Requests with Forge and dozens of other features.
practicalli/spacemacs.d repository contains a customised configuration for Clojure development and supporting tools. Browse the repository online or fork / clone the repository
The Practicalli configuration should replace the ~/.spacemacs
file if it exists
Spacemacs install guide - Practicalli Spacemacs
Doom Emacs is a community configuration for Emacs that provides a minimalistic configuration that is readily customisable. Doom Emacs is most suited to those comming from a Vim-style editing background or simply looking for a lightweight setup with options to extend the configuration.
practicalli/doom-emacs-config repository contains a customised configuration for Clojure development and supporting tools. Browse the repository online or fork / clone the repository
~/.config/doom/
directory created by the doom install
command.
Emacs Prelude is an easy to use Emacs configuration for Emacs newcomers and lots of additional power for Emacs power users, from the author of CIDER - the definitive Clojure IDE for Emacs.
Prelude uses the traditional chorded key bindings to drive Emacs, e.g. Ctrl+c Ctrl+c to evaluate the current top-level form.
Neovim is a hyper-extensible text editor that evolved from Vim whist still fully compatible with Vim"s editing model and Vimscript extension language. Neovim uses lua configuration and with the aniseed package configuration and Neovim packages can be written in Fennel (a lisp dialect).
Neovim is based on multi-model editing (e.g. normal, insert, visual editing states) providing a highly effective tool for writing code, configuration and documentation.
The Neovim community provides a large number of packages to add features.
Conjure is predominantly used for Clojure development and supports Clojure CLI, Leiningen and Babashka projects (as well as several other Lisp dialects and interesting languages)
practicalli/neovim-config-redux is written in Fennel as it is very close to Clojure.
A Which-key menu can be used to drive Neovim, with a mnemonic set of key bindings to make adoptiong Neovim easier.
Conjure provides interactive environment for evaluating Clojure code and providing inline results (or see results in an Heads Up Display or Log buffer).
Practicalli Neovim covers installation and basic use of Neovim for Clojure development.
Older Neovim guides include:
Practicalli install guide for neovim and conjure Practicalli user guide for neovim and conjure
Quick try tutorialλ︎
Try the Conjure interactive :ConjureSchool
tutorial without the need to install, only a recent version of neovim

:q
to quit the tutorial.
Referencesλ︎
Getting started with Neovim and Conjure Neovim user guide Conjure install guide Conjuring Clojure in Vim - an introduction to using Conjure
SpaceVim is a fully featured vim experience that includes a simple Clojure development environment based around vim-fireplace
Follow the Quick Start Guide to instal SpaceVim
Add the Clojure layer to the SpaceVim custom configuration file
SpaceVim quick guide SpaceVim - Clojure Layer SpaceVim quickstart guide SpaceVim documentation
VS Code is a freely available editor build on open source and available for Linux, MacOS and Microsoft Windows.
VS Code has a large marketplace of extensions, proiding additional tools for a complete development environment.
Calva is the most commonly used extension for Clojure support and aims to provide similar features to Emacs Cider (and uses some of the same Clojure libraries).
VSpaceCode provides a mnemonic menu (which-key) to drive VS Code by keyboard alone, vim editing and rich Git client (edamagit). VSpaceCode extension also provides key bindings for common Calva commands. Users experienced with Neovim and Emacs (Spacemacs / Doom) will find this extension makes VS Code easiter to use than vanilla VS Code or VS Code with an Neovim backend.
Clover provides a more mininal environment using Socket REPL.
The Calva extension adds Clojure support to Microsoft VS Code editor.
Calva is under active development and the #calva channel on the Clojurians Slack community can be supportive.
Calva Getting Started Guide VSCode Calva extension VSCode Getting Started Guide
VSpaceCode is a Spacemacs-like community configuration for Microsoft VS Code. Drive VS Code and Calva entirely from the keyboard, using easy to remember mnemonic keys for all commands and full vim-stile editing tools.
Edamagit is a sophisticated text based Git client (like magit for Emacs) is also included in the VSpacemacs extension.
Practicalli VSpaceCode install guide Practicalli VSpaceCode user guide
Clover is a Socket REPL based development tool for Clojure with some ClojureScript support (not including Figwheel).
Clojure GitLab repository includes useage details.
SublimeText 4 is a lightweight and feature rich text editor, especially of interest that like a simple and uncluttered UI. SublimeText is a commercial project although has free trial version available (check conditions of use).
Clojure-Sublimed provides Clojure support for SublimeText 4, with support for Clojure & Edn syntax, code formatting and an nREPL client to connect to a Clojure REPL process.
SublimeText install Clojure-Sublimed install SublimeText Documentation
Atom not actively developed
Atom will be archived on December 15 2022 and no further updates from GitHub team, although it may continue in open source.
Consider using VSCode with Clover or Calva plugins instead
Atom.io is flexible and simple to use editor . Chlorine is the recommended plugin for Atom.io. ProtoREPL is not actively maintained at present. The Chlorine plugin for Atom is especially recommended for ClojureScript shadow-cljs projects.
ProtoREPLλ︎
ProtoREPL
Atom & ProtoREPL install guide
Proton - alternative menu and configuration approachλ︎
Proton offers a simple mnemonic menu as an alternative to the multiple keys for shortcuts in Atom.io. Proton also gives you a simple text configuration to manage all your packages quickly. Unfortunately Proton is not complete replacement of all actions.
Cursive may be an appropriate choice for people from a Java background who are already familiar with IntelliJ. Cursive will run static analysis of Clojure code when opening a Clojure project, as IntelliJ does with other languages.
Requires license for commercial development
There is a free license when development is not for commercial projects, however, a license must be purchased for each developer working on a commercial project.