How I learned Emacs / Emacs Lisp

Published Feb 07, 2018Last updated Apr 25, 2018
How I learned Emacs / Emacs Lisp

About me

I'm a backend oriented (full stack if need be) developer with 15 years of experience.

Why I wanted to learn Emacs / Emacs Lisp

I have bounced around from editor to editor for years. Vi, Sublime, Atom various small open source editors with novel approaches. I had messed with emacs once, but never dove down that rabbit hole. I stumbled on a set of dotfiles for it called prelude, and after a tiny bit of messing aorund, was finally happy....for a while.

I wanted a faster start up time, I wanted to know what everything prelude was doing, to evaluate if I needed it or not, and also find features I might have been missing out on.

My approach

I've found the best way to learn anything is to dive right in, it also helped that I was editing my editor in itself, so every new feature or chord I learned, was put to use immediately, again and again, which really helps improve the muscle memory.

I located a blog post about writing your emacs dotfiles in org-mode, so I would have a literate startup file, that could be collapsed in editor into sections. Armed with my current prelude dotfile (and I was going to say this post), however I couldn't find the original post which inspired me. The one provided is similar enough in nature to get you going. At any rate armed with those two things and a whole lot patience, milk.org is the result.

Challenges I faced

One of the biggest challenges I faced was the enormity of prelude. Dissecting it file by file, line by line. Looking up if there was a more modern approach, this is how I found things like pallet for managing my packages. The size of the task was huge, but passion got me through it.

Key takeaways

I think a major takeaway from all of this is sticking with something until you get your MVP. When you arrive at where you need to be (in my case less/sass and javascript support) and a basic editor who's extra features you just added, there is a great sense of accomplishment.

A close second is "Effort is Worth It". When I got a contract for a Ruby project a few months later, I took a day to add to something I was now intimately familiar with, and added support to recognize RVM and other subtle things that come along with Ruby. In fact frontloading the work, I have created a very easily extensible framework for extending a wonderfully extensible editor.

Most recently I've begun working with R again and found the ESS package to be amazing, and easy to configure given my literate dotfile.

Tips and advice

This isn't something I would recommend diving in to just because you want to be hip, or because you think you might need it. If you really want to get in to it and go the distance, you will need a good reason that will still make sense to you 15 hours in and no fear of some pressing deadline.

Final thoughts and next steps

Always pick something you personally care about, scratch your own itches.

Discover and read more posts from Seth Price
get started