Code with Kristian • I make videos and write about software development and programming tools

How to start using Emacs, the programmer's editor 🤓

In this issue of Bytesized, I'll unpack how to learn Emacs, some great setups that make it easy to get started with Emacs, and, if you're interested in why Emacs, deep dives on what it means to build and use text editors, especially ones that give you complete control over your editing experience.

How to start using Emacs, the programmer's editor 🤓

Emacs is an incredibly customizable text editor built on top of Lisp. It has an infamous reputation among programmers and writers as being one of the most daunting tools you can pick up in the programming world, and for good reason: from top to bottom, every single piece of the editor is customizable and extensible to your liking.

It's not just for programmers, either – here's the science-fiction author Neal Stephenson on Emacs:

In the GNU/Linux world there are two major text editing programs: the minimalist vi (known in some implementations as elvis) and the maximalist emacs. I use emacs, which might be thought of as a thermonuclear word processor. It was created by Richard Stallman; enough said. It is written in Lisp, which is the only computer language that is beautiful. It is colossal, and yet it only edits straight ASCII text files, which is to say, no fonts, no boldface, no underlining. In other words, the engineer-hours that, in the case of Microsoft Word, were devoted to features like mail merge, and the ability to embed feature-length motion pictures in corporate memoranda, were, in the case of emacs, focused with maniacal intensity on the deceptively simple-seeming problem of editing text. If you are a professional writer – i.e., if someone else is getting paid to worry about how your words are formatted and printed – emacs outshines all other editing software in approximately the same way that the noonday sun does the stars. It is not just bigger and brighter; it simply makes everything else vanish.

Emacs has seen renewed interest in recent years because of org-mode: a deceptively simple plain-text organization tool built into most Emacs distributions. Org, as most people in the Emacs community call it, is somewhere between a todo list, an interactive code execution environment, and a writing tool, all-in-one.

Throughout this month's Bytesized newsletters, I've been exploring text editors. Emacs is a programmer's editor – sure, you can write and edit text, but you can also configure what it means to write in Emacs, and what it means to edit: not just text, but things like your emails or tweets, too.

That being said – it's daunting! While it isn't as hard to figure out how to quit Emacs as it is for Vim, doing anything of minor complexity, especially in a terminal-based Emacs UI, can be really difficult.

In this issue of Bytesized, I'll unpack how to learn Emacs, some great setups that make it easy to get started with Emacs, and, if you're interested in why Emacs, deep dives on what it means to build and use text editors, especially ones that give you complete control over your editing experience. Enjoy!

Source

How to learn Emacs

A Hand-drawn One-pager for Beginners / A visual tutorial

Sacha Chua's hand-drawn Emacs guide covers the basics of Emacs, and what to explore next. Perfect for printing out at your desk!

via How to Learn Emacs: A Hand-drawn One-pager for Beginners, from Sacha Chua

Absolute Beginner's Guide to Emacs

Jessica Hamrick's intro to Emacs covers the most crucial Emacs shortcuts, before diving into a conceptual overview of how the Emacs workflow works – buffers, windows and frames.

Absolute Beginner’s Guide to Emacs
I’ve been using Emacs () as my primary text editor for several years now. It takes some getting used to – the keyboard shortcuts are completely different from what you’re probably familiar with, e.g. Ctrl-C for copy and Ctrl-V for paste. Despite the somewhat steep initial learning curve, however, I.…

emacs.sexy

Despite the kind-of ridiculous name, emacs.sexy is a great intro to Emacs, both the editor, and the community surrounding it. Find the right Emacs build for your platform, and a collection of resources to help you get started – books, screencasts, and more.

Emacs.sexy
Emacs is Sexy

Setups that work

Doom Emacs

Doom Emacs is an extremely popular Emacs distribution (a term used in the community for a pre-configured Emacs environment) that has a ton of extensibility for different languages, tools, and workflows.

Doom falls into the distro category of "everything set up for you" – it gives you a few ways to customize your Emacs outside of Doom, but generally, you're going to be in the Doom ecosystem, using the plugins and primitives they set up for you in order to customize your editor.

If you're looking for a quick set up and have some experience with Emacs, Doom might be a good fit. If you're new to Emacs and OK with a bit of a learning curve, you'll get a great set of defaults for working with most languages and tooling, without having to work too hard to find it.

hlissner/doom-emacs
An Emacs framework for the stubborn martian hacker - hlissner/doom-emacs

Spacemacs

Spacemacs is the original all-in-one Emacs configuration, with a focus on combining Vim shortcuts and Emacs sensibilities into a single editor. If you're coming from a Vim background, Spacemacs works almost identically to Vim on first launch (though, to be fair, so does Doom!) and provides a great UI for discovering new functionality through the <leader> (set to space by default) hotkey system.

Spacemacs: Emacs advanced Kit focused on Evil
Emacs advanced Kit focused on Evil

Prelude

Prelude is an Emacs distribution for developers who don't want to override all of the Emacs default behavior with custom logic. It's pure Emacs, just with some nice defaults included. Bozhidar Batsov, the maintainer of Prelude, is also the maintainer of a number of extremely popular Emacs plugins, so he has the background in Emacs Lisp development that makes Prelude a reliable Emacs distro to work with.

bbatsov/prelude
Prelude is an enhanced Emacs 25.1+ distribution that should make your experience with Emacs both more pleasant and more powerful. - bbatsov/prelude

Deep dives

Toward a "modern" Emacs

Jonathan Corbet explores the modern history of Emacs – the recent popularity of the editor, how the editor can change in the immediate and long-term future to attract developers, and how the community can embrace the new popularity and enthusiasm for the platform.

Toward a “modern” Emacs
It has only been a few months since the Emacs community went through an extended discussion on how to make the Emacs editor “popularagain”. As the community gears up for the Emacs 28 development cycle,(after the Emacs27.1 release in August)that discussion has returned with a vengeance. The the…

Why Emacs?

Bozhidar Batsov (author of the Prelude distro above) covers why he uses Emacs, and why he thinks it's a unique editor worth learning:

I’m an Emacs user and I’m proud of the fact. I know my reasons for using it (and loving it) for many years now. But many people don’t. I often get asked by various people the same question - “Why should I use Emacs? What makes it better than Eclipse/IntelliJ/vim/etc?”.

While I wouldn’t dare to claim that Emacs is better than all the IDEs and competing editors I’ll share here the things that I think are making it great.
Why Emacs? · (think)

How to open a file in Emacs

Murilo Pereira's recent article about Lisp and Emacs is a deep dive into why Lisp and extensibility in an editor matters, and how Emacs' values are different than most editors on the market. It's a pretty epic read (estimated at 74 minutes on his blog), but if you're interested in the why and the deeper how of text editors as a tool that we all use for thousands of hours in our lives, it's worth checking out!

How to open a file in Emacs
A short story about Lisp, technology, and human progress.

What we're working on ⭐️

Hey, a new segment for the weekly newsletter! Besides writing the Bytesized newsletter, I publish a bunch of stuff on our YouTube channel and blog. Whenever there's new things to share, I'll add them here as well. If you dig any of the content, make sure to share it and do the whole like and subscribe thing – it helps a ton!

How to build a Discord notification bot for new Ghost members (blog post)

In this blog post, we'll use Cloudflare Workers to deploy a serverless function for posting new subscriber notifications from Ghost to a Discord channel.

How to build a Discord notification bot for new Ghost members
In this blog post, we’ll use Cloudflare Workers to deploy a serverless function for posting new subscriber notifications from Ghost to a Discord channel.

Adventures in Side Projects (video series)

I've been building out my newest side-project, Jobs in DevRel, completely in the public. If you're interested in the day-to-day of what it means to start a new project, check out the video series on my YouTube channel, where I walk through starting the site, thinking about growth, and small technical challenges I'm overcoming to make the site a success. Watch the first one below!


Liked this issue? Good news—Bytesized's theme this month is editors. We'll be looking at text editors, tools for thought, and how to be more productive this year as we build software. See you next week!

Bytesized is a weekly newsletter exploring important ideas for developers. Join us on our Discord server 👋

Enjoying these posts? Subscribe for more

Subscribe to be notified of new content and support Code with Kristian! You'll be a part of the community helping keep this site independent and ad-free.

You've successfully subscribed to Code with Kristian
Great! Next, complete checkout for full access to Code with Kristian
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.