In Clojure We Trust

A piece of intertube about the Clojure programming language, algorithms and Emacs.

A Simple Emacs Configuration

In this post I introduce a simple, effective and maintainable structure for the .emacs.d configuration directory.

I have a mix feeling about pre-defined Emacs configurations such are Emacs Live or Prelude. In one hand they build a nice showcase, demonstrating powerful modes and features, in the other hand they seem complex in their structure and use their own abstractions (“modules” for Prelude, “pack” for Emacs Live). That is why I still prefer to write my own configuration which I can easily fix. Of course I still dig in people configuration to get ideas. Basically I have reached the same conclusion as technomancy which stopped its Emacs Starter Kit.

In the last weeks I have redone my configuration removing El-Get, which I found too slow, in favor of MELPA. My initial switch to El-Get was because Marmalade was often down ; I didn’t experience the same issues with MELPA.

The configuration is based on package+ (the name is hard to search on the web!) and the great use-package package. A makefile installs the few git submodules needed, download user-defined packages and byte-compiles the packages. User and machines specific configurations can be defined in the $HOME/.eroles/login@hostname/ directory. The auto-async-byte-compile mode ensures that Emacs Lisp files are always byte-compiled.

All packages configurations are done in a lazy way, thanks to use-package, and organized with orgstruct-mode in an org-like structure.

I stole a few ideas here, there and there for the configuration.

The configuration is simple yet effective, I hope it can inspire beginners or even advanced users for how to structure an .emacs.d directory effectively.

See my .emacs.d configuration on GitHub and happy hacking!