Emacs: An Odyssey


Hello!! Been a long time since I blogged about anything. So much has changed. I didn’t ever see myself writing this post but .. sigh here goes nothing..

The Beginnings

Let’s start with how it all started out. Unlike most others who learnt to program in Python or C or some other such sane language, I learnt to program in Scheme. Huh? is the most common reaction to that proclamation. And being extremely enthusiastic, I wanted to learn things the right way (whatever that is, we’ll talk more about this later). So I got about installing MIT/GNU Scheme and started working through the exercises in Introduction to Computing:Explorations in Language, Logic, and Machines a book by David Evans of the University of Virginia (You can get the book free from here). My incessant googling somehow convinced me that Emacs was the tool for the job. I got setup with emacs and went through the tutorial many times (at least 72, give or take a few) and started coding.

Annihilation

I then went to college where a wonderful MTech student showed me what he could do with Vim. Never before had I seen such a beautiful amalgamation of power, speed and flexibility (I mean that’s what he called it). Nonetheless I was hooked and I truly learnt Vim. When I say truly, I mean that I not only researched online about vim, I saw videos of vim meetups, read entire books on using vim and customising vim, and was paranoid about any vim trivia and merchandise (still planning on buying some soon).

Many months passed and all was well. Well until now..

The Right Way

I told you we’d come back to this. So being an absolute vim nerd I was watching thoughtbot’s NY vim meetup videos. That’s when I saw Aaron Bieber. His talk on evil mode blew my mind and got me thinking. Another eye-opener was Carsten Dominik’s Google Tech Talk on an emacs package he wrote called Org-mode. Both these videos made me realise something. My Vim phase (so to speak), taught me that composability and repeatability were very important pillars in editing and made me think about my edits in that philosophy. My short tryst with emacs taught me that emacs was something I probably was never going to understand. But nevertheless I thought I’d start off with emacs again and install evil mode. And the configuring really scared me. I was not going to spend half my life to configuring this and figure how to embed all my vim editing styles into emacs.

So I came to the conclusion that The Right Way was not vim or emacs, it was vim + emacs. But if only there was a way the configuration could be organized by someone else who knows what they are doing.

Emacs + EVIL was everything I had ever hoped for in that it provided me with an interface to use vim’s composabiliity and repeatability alongwith the vast genius and power of emacs. It was vim on steroids. And the transition was smooth. I took to this setup like a fish to water. And this has been one of the best experiences of my life.

This might be one of the many posts on Emacs I write. Until next time:

(defun foo ()
    "Give a salute"
    (switch-to-buffer "*foo*")
    (insert '"Moriturus te Saluto!!"))
(foo)