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

Increase or Decrease The Size Of Static Partition In Linux

Immersion Starts with Sound.

Using Amazon Elastic Container Registry

How to manage stress while coding ?

Printf Function

Get Ruthenium Prices In Javascript Using This API

Configure SteamVR to work with the Omnideck treadmill

Architecture Dashboard: Visualize and Manage Technical Debt

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

Animated source code statistics with Vizzu

Why Do I Use PostgreSQL For My Rails Backend & How To Set It Up

How to Use A GUI in

Who Moved My Cheese: Laziness in Clojure