How I Got Comfortable With Emacs
Emacs was very uncomfortable for me for a long time. No, I wasn’t a pro in vim. I had found the need to configure everything in Emacs daunting.
And then on a fine evening about 20 hours from the second paper of surgery, I did a sudo rm -rf /*
on my computer.1
Although I lost only my boot partition, after a short stint with slacko64 puppy linux, I decided to reinstall ArchLinux. This time I chose to install only Firefox and Emacs. And that made all the difference.
My intention was that having access only to Firefox and Emacs I’d have to install all the packages that Emacs has and be forced to learn how to use them. But on the first day I installed Bamboo feed reader, Chatzilla, and even an ssh client inside Firefox.
But on the next day I made it a point to persist with Emacs. And in the following week I learned these things.
Configuration
Emacs greatest power is how you can configure it. Elisp is simple. Once you figure out how things work you’ll have the realization that everything is stitched together just like the ultimate hacker editor should be.
Emacs runs the init file on startup.
And within that file you can configure everything.
Incredibly helpful things
C-h ?
gives a lot of stuff. The most useful among these for me was C-h f
and C-h v
and C-h k
.
To manage packages, use use-package
. (Figure out how to install this)
Install ido
, smex
, guru-mode
For terminal you have eshell
(which’s written in elisp) and ansi-term
(which’s what you should use when you run into problems with eshell). For sharing path
variable between these, use exec-path-from-shell
custom-file
stores your customizations. (Do C-h v custom-file
to learn more)
Do M-x
followed by command for everything. It’ll tell you when you can use a keybinding.
Some aha moments
t
in lisp stands for true.- A lot of things about packaging have changed in the latest versions of Emacs.
- Super key might not be available to Emacs depending on your operating system (or desktop environment).
- Use
emacs -fs
to start in full screen. - Variables set with
defcustom
can be customized easily.
I’m still learning a lot and you can look at my .emacs.d directory
-
To be correct, I first tried
sudo rm -ir /
and it warned me something like “running such a command is bad, be careful”, etc. And then I triedsudo rm -rf /
and sure it displayed the same warning. So I got overconfident and wanted to take a screenshot ofsudo rm -rf /*
because that’s the command that was in the meme about apple bitcoin mining and the next thing I see is permission errors. ↩