The Blog of Joshua Blais.

You Should Use Emacs

Cover Image for You Should Use Emacs
Joshua Blais
Joshua Blais

Why I use Emacs in 2021, and You Should Too

"Josh, why are you using software from 45 years ago?"

Because it's that good.

How it Begins

We all manipulate text for a living. It is a given if you have a knowledge job in the 21st century - the more effectively that you write letters on a screen, the better. Most people write documents in WYSIWYG editors such as Word or Google Sheets. It's far from effective, but it is also easy.

But if you write any sort of code, you're not using Word.

You have to use some sort of text editor. It's a rabbit hole that you will inevitably get sucked into, as you search for 1% more productivity here, 3% there. Multiple cursors, auto formatting, language support, you name it.

You probably start with something like Notepad. Some people are content in this, they're masochistic, but I admire that.

Then, after they realize that there are solutions that actually highlight your syntax and allow you to auto format your code, they will jump to some sort of IDE. This usually occurs after using Notepad for around 1.5 - 2 hours, but some people take 5 years.

In the space of IDEs and text editors, you don't have any shortage of choices. Electron powered applications such as VS Code Atom have taken over much of the landscape, as people look for simple ways to get into the world of coding.

I've run the gamut myself.

Starting with Sublime Text on Windows years ago, then Atom, then back to Sublime, then VS Code. But then I realized Windows is garbage, and switched up operating systems, realizing that I would have to use a terminal far more.

Enter Vim

It was only once I started running Linux as my daily driver that I moved on to Vim. I had a short lived stint with Emacs before Vim, and we will touch on that shortly.

I didn't make the decision lightly. I researched for hours about Vim or Emacs. I was bombarded from all different sides as to the opinions of nerds across the world. But, I decided on Vim as it was "lightweight, didn't take that much time to load, and could be used everywhere." I didn't really get the point of Emacs.

Why use something so obviously bloated, something that didn't really know what it was?

The joke of "Emacs is a great operating system, it just lacks a decent editor" was just too much to overcome.

Vim is a different beast, but it will change your entire perspective on interacting with a computer forever.

And, yes, I know - those aforementioned IDEs have Vim emulation. I know, but none of them are very good.

As a sidebar - Vim is so good at what it does that even if you are a novelist or someone working on a thesis, it's probably worth learning and using. It will literally shave hours off of your process - for someone that writes a lot, that's probably a week of your life a year. I've used it extensively to write blog posts and books.

I stayed with Vim for years. I used it in the terminal everyday of my life, and the life changes in productivity, ease of use, and ability to get work done skyrocketed.

You mean to say that I don't have to /use a mouse/ anymore? Sign me up.

2020 and time to kill

Then, I had some time to spare in 2020 - we all did, I suppose.

That short lived stint in Emacs came back with a vengence.

In the years that followed my first bout with emacs, things had changed drastically. People were making /distributions of emacs/ that had all the built in functionality you could desire, they looked good, and they were easy to learn.

So in my hours that I could have spent doing more pointless things, I figured "hey, why not give this a shot again?"

** The philosophy of Emacs

What I failed to mention before is that in the pursuit of productivity, you go down another rabbit hole.

That rabbit hole is that you realize you've been lied to about what a computer is.

You thought it was a screen with nice big icons to press when you wanted to open some app? You thought that a computer is just a laptop or desktop that sits in front of you?

Nah.

You come to understand that you were locked in to a way of doing things previously that you didn't have to be when you were using operating systems such as Mac or Windows.

So you break out of the confines of those systems. You build your own.

You begin to tailor your experience completely to you, you start to make it so that your operating system and tools that you use daily follow you around on any computer you touch, near or far, on hardware you're sitting at or on a server somewhere across the world.

You may start SSHing into servers that are hundreds (or thousands) of miles away from you to deploy your code that you have spent so much time learning about.

So, inevitably, you start using terminal based applications. You learn that you can manipulate files with a command line, you see that your passwords can be managed in that command line. Your calendar, the articles you read, your todo lists, your music, your email all follow. All of a sudden, your entire life can work out of a terminal.

But the thing is - this is a fragmented approach to managing these applications. You have to install (for me) close to 30 different programs: ones that allow you to tile your screen (bspwm), ones to control notifications (dunst), to set your wallpaper (nitrogen), to manage files from your terminal (ranger), to change programs (rofi with dmenu)... the list goes on and on.

Doom Emacs

And then, you come to a realization that this was all a waste of time and that you could have been using Emacs the whole time.

At least for most of this stuff.

You want a great text editor - Vim is arguably the best ever concieved - then use evil mode in emacs.

You want a password manager - pass.

You want a file manager - dired.

You want to access the internet - just kidding - stop it with that hipster shit.

You want an IRC client - emacs has it.

You want a calender and system to manage your todo's - Org Mode.

You want an RSS Reader - yep.

I've replaced around 85% of my applicaitons with emacs, and then simply kept the few that make my computing experience better on the machine.

Emacs is effectively always running, it is there for me to make quick notes, or write code, or manage where I need to be tomorrow.

And, the best part is that you create a configuration that you throw up on any repository, and all of a sudden, you can run this environment anywhere you so choose. You can pick up your friends computer and be just as productive as if it was your own, you can switch to a new system very easily.

The Future

I have barely scratched the surface when it comes to the capabilities of the Emacs ecosystem. I have so much more to learn - but that's why this software has been around since the mid 70's and it's STILL PREVALENT in 2021.

Our boy Richard Stallman knew what he was doing.

It's mature software - it's home for a lot of people, and that's why it will be around in another 40 years.

Editors come and go, Emacs is forever.

Subscribe for updates direct to your inbox.