How I started with Emacs

Sacha Chua has a nice Emacs chat intro article back from 2013. I write this post half because she asks there about my (OK, anyone’s) first Emacs moments, and half because I plan to do it for months now.

I wanted to start using Emacs 6(ish) years ago, and I was like “C-x what”? (Note that back around 1998, I was among the people who exited vi by killing it from another terminal after a bunch of tries & fails like these.)

I tried to come back to Emacs a lot of times. And I mean a lot, about every two months. I suddenly learned what these cryptic key chord descriptions mean (C is for Control and M is for Meta, which is actually Alt), but somehow it didn’t click. I remained a ViM power user with a huge pile of 3:sup:rd party plugins. Then I found Nyan-macs), which converted me to Emacs, and it is final now. Many of my friends thought I’m just kidding this being the cause, but I’m not. I’m a huge fan of Nyan cat (did you know there is even a site called and since then I have it in my mode line:

Nyan modeline

…in my eshell prompt:

eshell prompt with a Nyan cat

…and I also zone out with Nyan cat:

a text-based animation with Nyan cat

Now on to more serious stuff. After browsing through all the packages provided by ELPA, I found tons of useful (and sometimes, less useful) packages, like Helm, company, gtags (which introduced me to GNU Global, removing Exuberant ctags from my life), magit, Projectile, and Org (OK, it’s actually part of Emacs for a while, but still). I still use these few, but in a month or two, I started to version control my .emacs.d directory, so I can easily transfer it between my home and work machine (and for a few weeks now, even to my phone: I’m using Termux on Android). Then, over these two years I wrote some packages like GobGen, and a small addon for Calendar providing Hungarian holidays, and I found a lot more (in no particular order):

…and a lot more.

What is more important (to me) is that I started using the use-package package, which can automatically download packages that are not installed on my current local system. Together with auto-package-update, it is very practical.

In addition, I started to follow the blogs of a bunch of Emacs users/gurus. I’ve already mentioned Sacha Chua. She’s a charming, cheerful person, writing a lot about Emacs and project management (among other things). Another one is Bozhidar Batsov, who, among other things, had an initiate to lay down the foundation of a common Elisp coding style. Another favourite of mine is Endless Parentheses, whence I got a lot of ideas.