What the heck is Emacs?
Are you ready to get your geek on? Let’s talk about Emacs.
The first thing to understand about Emacs is that it’s not a sandwich. It does sound like it might be a tasty snack, but unfortunately being food is among the small percentage of things Emacs is not.
Emacs is a text editor. No, wait. Emacs is for writing code. Ummm… it’s also for organizing your calendar and using email. You can play games. Here’s the definition from the creators of the most widely-used variant of Emacs:
GNU Emacs, describes it as “the extensible, customizable, self-documenting, real-time display editor.”
It was invented in 1976, and is amazingly still used and being developed today in (mostly) it’s original form. It doesn’t have a pretty, graphical user interface like the software you’re used to in 2021. It looks more like the terminal window that Neo uses in The Matrix.
Rather than navigating with a mouse, you do almost everything using key commands. It takes a little time to learn them but once you do, it becomes second nature. If you use bash (terminal) a lot, you’ll get the hang of it pretty quickly. In fact, you can even use Emacs inside your terminal, but that’s a story for another day.
Like the description says, Emacs is customizable and extensible. There are packages you can download and install (all from within Emacs) that extend the functionality and look of your Emacs. Someone else’s Emacs could look totally different from mine, which is pretty cool.
Emacs is also self-documenting, which means that everything you need to know about using it is built right into the program. If you try it, I highly recommend doing the built-in tutorial.
Another thing to love about Emacs is that it’s cross-platform. You can move your whole Emacs setup between Mac OS, Windows or Linux and pick up right where you left off.
Here’s a screenshot of my Emacs setup (click for a close-up):
I use two monitors and Spaces (Mac OS). So my #4 space is dedicated to Emacs. I’ll give you a quick tour, then I’ll describe what’s going on. There are several windows open, some with one frame and one split into two frames. From the left; Scheme, Projects, Agenda, Notes (below), and a Game. Here’s what they are:
This is the reason I started using Emacs in the first place. I write code in a few different languages, but I never really learned computer science itself. I picked up a book called Simply Scheme that teaches computer science and programming from a very basic level. For several days (weeks?), I got wrapped up in learning how Emacs works, and of course I had to find out everything I could do with it beyond running Scheme.
There is even a package that highlights syntax errors in PHP and other languages. While my main code editor is VS Code, I’ll edit some code in Emacs from time-to-time.
Emacs is a very basic text editor, but it does have some features that allow you to create nicely organized lists and documents. The thing I like about it is that it’s very much distraction-free. Unlike writing in MS Word or even Google Docs, there are no formatting options or little pop-ups that happen while you’re composing something. I use it to get my thoughts down, edit, then paste the final version into Open Office or Google Docs later for formatting. Using Markdown language you can also do some nice formatting in Emacs and export as HTML or a PDF.
One of the things I love using it for is to list projects I’m working on and next actions (similar to David Allen’s Getting Things Done, but me style). I can create To-dos and even manage them with scheduling and completing them with simple key commands.
One feature I love is org-mode. I can look at my schedule and to-dos by the week or day. Any to-dos I have added to my other files, like Projects, will sync up with my agenda file. It takes a little setting up, but once it’s done it’s awesome.
Like most people in 2021, I use my phone for almost everything. So it wouldn’t do me a lot of good to set up an agenda if I couldn’t view it or manage tasks when I’m not home. Luckily, there’s an app for that. It’s called beorg and I love it. It syncs via my iCloud acccount (you can also use WebDav or Dropbox).
Again, as a text editor, Emacs is great. Anytime I want to make quick notes on something, I create a new file/buffer and start tapping away. In my screen shot, I was copying and pasting notes from a chat with tech support about a client’s site. Sure, I could just use TextEdit or a bunch of other word processing apps on my laptop, but the beauty of Emacs is that I can do almost everything right there.
If you used a PC back in the early 1980s like I did, the first thing you wanted to know was what kind of games can I play on this thing? Back then, computer games were mostly text-based unless you had a system like Pong. The games included with Emacs are very similar, although these days there are more graphical-based games like Tetris and even Pac-Man (I haven’t tried that yet). And yes, Pong is there, too.
The game open on my screen is Dunnet, which is a version of an interactive adventure game called Zork. I keep that buffer open and jump into it every now and then.
There’s a fantastic list of games you can play at https://www.masteringemacs.org/article/fun-games-in-emacs.
Try some Emacs!
If you’re even slightly geeky about computers, you should give Emacs a try. Maybe it won’t be as useful to you in your day-today like it is for me, but it’s fun to try it out. There’s a bit of a learning curve, but there are tons of resources online to help you figure stuff out.
Do you use Emacs? Have you ever tried it? I’d love to hear your experience!