Spacemacs on develop branch

· geek · software ·

It has been a long time since I’ve published anything, as I’ve had a frantically busy month or so at work. I’ve had barely any time for anything else. I haven’t sewn any garments for a while, and the only creative thing I’ve done with my hands is to start knitting a pair of socks, which I then had to unravel back to the start half-way down the foot when I made a catastrophic mistake. Things are getting a little quieter now and I hope to get back to my sewing projects, but the only productive, non-work thing I have done lately is to tinker a bit with my Spacemacs configuration. The first thing I did was to switch from the stable release of Spacemacs to the develop branch. This is slightly risky, because of course things tend to be in flux in development. However, the general consensus in the Spacemacs chat room is that develop is pretty stable and fine for everyday use with a bit of care. You do get the latest and greatest improvements, including a choice between using helm or ivy for completion. After trying ivy for a bit, I ended up sticking with helm, as I prefer the way it presents the completions and allows you to work flexibly with them.

There have been a few minor changes to the format of the .spacemacs config file and the structure of the layer packages since I started using it, so this time I decided to make a clean start and set up a fresh configuration, moving across what I needed from my old configuration. I also decided to use the option to set up a ~/.spacemacs.d/ folder to contain my layers and snippets within a private directory, but also to use an init.el file within this directory for my configuration. This allows a complete separation between the ~/.emacs.d/ directory which contains the Spacemacs files and also the packages you install, which in turn means that you can commit the whole ~/.spacemacs.d/ folder to version control.

I’m still a beginner with elisp, Emacs and Spacemacs, so I barely know what I’m doing, but I’ve tried to tidy up my configuration a bit, moving out a lot of functions and chunks of configuration into their own layers. I’m pretty happy with the way it all works now: I’ve got a good, working org-mode setup now, which works well with both Pandoc and the native Org exporters, so I can choose which to use depending on what I need to do. I’ve also added some convenient integrations with other bits of OSX, or macOS as I guess we should call it now. For example, I can now store links to DevonThink items (with x-devonthink-item:// URLs) and can click them in Emacs and open the original item in DevonThink. This works with any other third-party application that provides an url-handler too, making it very convenient to refer to resources elsewhere in your system.

If you use Spacemacs and are curious about how I’ve got it set up, you can take a look at the repository on GitHub. I’ve tried to document stuff that might not be immediately obvious (as much for my future self as anyone else!), but feel free to ask if anything is unclear. Equally, if you are an Emacs guru and spot errors or inelegant bits of code, do let me know how I could improve it.