Setting up Emacs for Clojure Programming Within Seconds

Photo by Fernando Hernandez on Unsplash

This is a short note how you can set up your Emacs editor for programming in Clojure within seconds.

The settings are explained in the Brave Clojure tutorial.

I personally in my Ubuntu Linux home folder created a folder named emacs to put there all kind of settings for my emacs. Here, I create a folder for clojurein this folder and enter:

$ mkdir -p ~/emacs/clojure
$ cd ~/emacs/clojure

Then, I git clone a folder containing the init.el file with all necessary settings for clojure programming by:

$ git clone

And now comes the step and knowledge which took most of the time to find it out:

Usually emacs people do something like

$ mv ~/.emacs.d ~/.emacs.d.orig
$ mv ~/some_settings_folder ~/.emacs.d

And later have to name the renamed folders back. This is quite error prone.

A better solution is to start your emacs by:

$ env HOME=$HOME/emacs/clojure/emacs-for-clojure emacs &

This defines the folder containing the init.el for emacs as $HOME for the command emacs &. The disadvantage however is, if you call system commands from within your script using absolute paths or paths requiring your actual $HOME.

The advantage however is that you don’t have to rename folders which can mess things up a lot.

Since I want to call emacs for ruby programming by the command cljem (for cljemacs), I add to my ~/.bashrc file:

alias cljemacs="env HOME=$HOME/emacs/clojure/emacs-for-clojure emacs &"
alias cljem="cljemacs"

And source the ~/.bashrc, and can call my emacs with ruby settings by:

$ cljem

In my particular case, since I have my emacs locally installed in a conda envrionment named emacs, I entered into my ~/.bashrc:

alias cljemacs="source activate emacs && env HOME=$HOME/emacs/clojure/emacs-for-clojure emacs &"
alias cljem="cljemacs"

This activates first the conda environment by source activate emacs (or conda activate emacs, before it calls emacs with the newly defined $HOME.

The init.el file of emacs-for-clojuretakes care of all necessary installations in emacs’ site.




Code tweaker + Human Geneticist (Ph.D.) | Join medium by:

Recommended from Medium

Prototyping a Video Creator App for Web3

myFletcher: was this product really needed?

Roam vs RemNote — A Comparison

Roam vs RemNote

Get Tech Stack of a Domain using this API

Sending Invoices with PayPal Invoicing from Zapier

ECS deployments — from +10 minutes to -10 seconds

How to use an API in Alexa skill in Alexa-hosted(Python)

leetcode 987. Vertical Order Traversal of a Binary Tree

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Gwang Jin Kim

Gwang Jin Kim

Code tweaker + Human Geneticist (Ph.D.) | Join medium by:

More from Medium

Building your Applications in OpenShift from a GitHub Private Repository

Create a Multi-service Development Environment With VS Code and Docker

Universally Unique Identifiers

The importance of writing clear docstrings in programming