Full list of Tips, Tutorials and Articles

This page holds all the tips, tutorials, and articles I have ever written on Emacs. The page is automatically updated when I add new articles so feel free to bookmark it to return to it at a later date.

Mastering Emacs is now available in Japanese

Mastering Emacs is now available in Japanese

Why Emacs has Buffers

Emacs's buffers are so much more than their name implies. They're not just a vessel for you to read or write from. Buffers in Emacs host network processes, shells, and transient data. They're also a key part to understanding why Elisp is designed the way it is.

Emacs's Builtin Elisp Cheat Sheet

Emacs now has a builtin cheat sheet for a large swathe of common elisp functions. If you can't remember exactly how to do something, then this is a great place to look for it first.

Correcting Typos and Misspellings with Abbrev

Abbrev is one of Emacs's oldest (and simplest) text expander tools. Here's how you can use it to auto-correct typos and misspellings.

Text Expansion with Hippie Expand

Hidden away in a dusty corner is Hippie Expand, a much superior text expansion tool than Dynamic Abbrev.

The Emacs 28 Edition of Mastering Emacs is out now

The Emacs 28 Edition of Mastering Emacs is out now

What's New in Emacs 28.1?

Learn what's new in Emacs 28.1

Bad Emacs Advice

Most Emacs advice you'll find on the internet is largely good, and will improve your Emacs abilities, but people do occasionally share outright bad advice that harms your learning.

Inserting Emoji with Input Methods

The input-method feature, usually reserved for inserting diacritics and symbols, can be repurposed to insert emoji.

Tree Sitter and the Complications of Parsing Languages

I talk about tree sitter, CEDET, and Combobulate -- my "paredit-style" package that's designed to work with most programming languages.

The Emacs 27 Edition of Mastering Emacs is out now

I've released the third edition of my book, Mastering Emacs, with additional content and changes covering Emacs 27.

Unicode, Ligatures and Color Emoji

Emacs 27 lets you display native color emoji and both traditional and new-fangled programming ligatures, if your font supports it.

What's New in Emacs 27.1?

Emacs 27.1 is out and it brings with it a wealth of cool changes, including fast JSON; improved text shaping engine; and a lot of cool tweaks and additions to existing features.

Speed up Emacs with libjansson and native elisp compilation

The long-awaited native compilation feature is ready for mainstream uE in Emacs 28. And the end result? A much faster Emacs experience. You'll have to compile Emacs yourself to benefit from this, and I'll show you how.

Polymode: Multiple Major Modes and How to Use SQL and Python in one Buffer

Multiple major modes in the same buffer is a real problem in Emacs, but polymode solves it elegantly. I show -- with a handful of lines of code -- how you can get SQL highlighting in Python strings.

What's New in Emacs 26.1

After a long wait Emacs 26.1 is out and it's full of cool new features and tweaks.

Shell & Comint Secrets: History commands

Shell & Comint Secrets: History commands

Fun and Games in Emacs

A text adventure game; the game of life; tetris; and a psychoanalyst. They are just some of the fun and games in Emacs.

What's New in Emacs 25.1

I talk about the latest version of Emacs 25 and what new features and changes it brings.

Keeping Secrets in Emacs with GnuPG and Auth Sources

Keeping Secrets in Emacs with GnuPG and Auth Sources

One year anniversary of my book Mastering Emacs

One year anniversary of my book Mastering Emacs

Spotlight: use-package, a declarative configuration tool

Learn about use-package, a declarative way of configuring packages that ensures you'll never go through ".emacs bankruptcy" ever again.

Spotlight: Flycheck, a Flymake replacement

Spotlight on Flycheck, an excellent as-you-type syntax checker.

What is new in Magit 2.x

Magit 2.x is out, and it's full of new features.

How to write a book in Emacs

How to write a book in Emacs

My ebook Mastering Emacs is now out

My ebook Mastering Emacs is now out

Announcing my new Mastering Emacs book

I announce that I am working on a Mastering Emacs ebook

Emacs's switch to Git

Emacs has finally switched to Git, after ten months of fixing 29 years of accumulated source control cruft.

Four year anniversary and new website

Four year anniversary and new website

Emacs Video interview with Sacha Chua

My Emacs Video interview with Sacha Chua

Swapping quote symbols in Emacs with parse-partial-sexp

How to swap quote symbols by writing elisp code that uses Emacs's syntax tables and internal functions like syntax-ppss and parse-partial-sexp.

dirswitch.el: a fish shell-style directory switcher for shell-mode

How to quickly switch directories like fish shell in Emacs's own shell wrapper.

Displaying and Interacting with processes using Proced

Learn how to use Emacs's advanced process monitor, proced, and how it can replace both ps and top for all but the most esoteric of queries.

Dired Shell Commands: The find & xargs replacement

Dired comes with a powerful batch tool that replaces find and xargs with a far more powerful yet easier to use interface in Dired.

My Emacs keybindings

Rebinding keys in Emacs is very common, but I have only done it for a handful of the most essential keybindings. Here I explain what they are and why I have done it.

What's New In Emacs 24.4

Discover what's new in Emacs 24.4 as I annotate most of the changes made to the new Emacs version.

discover.el: discover more of Emacs using context menus

Learn how to discover more of Emacs by using this popup system that unintrusively explains how to use various hidden corners of Emacs such as the registers, isearch and Dired.

An introduction to Magit, an Emacs mode for Git

Learn how to use Magit, Emac's advanced Git client. I explain all the keystrokes and how to get the most of out of this essential tool for Git users.

Smart Scan: Jump between symbols in a buffer

This simple package jumps between symbols that match the ones point is on.

WDired: Editable Dired Buffers

Dired buffers can be made editable, and both filenames and permission bits can be edited like plain text.

Comint: Writing your own Command Interpreter

How to write your own basic comint interpreter for Cassandra.

What's New in Emacs 24.3

What's New in Emacs 24.3. I annotate the NEWS file and explain some of the changes made.

Evaluating Lisp Forms in Regular Expressions

Search & Replace in Emacs is powerful enough with regular expressions, but you can also use LISP forms to augment the replace functionality, enabling advanced replacement like adding up numbers.

Fun with Vimgolf 4: Transpositioning text with Tables

How to transposition text in Emacs by using Org-mode's table capturing functionality and regular expressions.

Fun with Vimgolf 3: Swapping Words by Sorting

How to swap words in Emacs using regular expressions and Emacs's advanced sort-regexp-fields.

Jedi: A completion library for Python

How to use Jedi, an advanced completion library for Python with a handy Emacs wrapper.

IEdit: Interactive, multi-occurrence editing in your buffer

How to interactively edit the same symbol in both the local function and globally in a buffer using iedit.

Hiding and replacing modeline strings with clean-mode-line

Hiding and replacing modeline strings with clean-mode-line

Working with Coding Systems and Unicode in Emacs

Hwo to force Emacs to always use UTF-8 or other coding systems when you open files or interact with processes.

Compiling and running scripts in Emacs

How to use Emacs's compile command to run arbitrary programs and scripts, such as unit tests, interpreters or programs.

Fun with Emacs Calc

Emacs's symbolic calculator engine is very advanced, and here I show how you can use it to convert latitude and longitude to hours, minutes and seconds.

PComplete: Context-Sensitive Completion in Emacs

Emacs ships with a sophisticated commandline completion engine called PComplete. I write a sample completion engine for Git and show you all the PComplete-aware engines already in Emacs.

Find nearest colors in Emacs 24

Emacs 24 shipo with a color distance function, but it is not exposed to the user. I show how to use thing-at-point to find the HTML hexadecimal color string at point.

What's New in Emacs 24 (part 2)

Part two of my annotated NEWS file for Emacs 24

What's New In Emacs 24 (part 1)

Part one of my annotated NEWS file for Emacs 24

Which Function Mode

which-func-mode is a cool, but hidden, part of Emacs that shows you, in your modeline, the name of the function you are in.

Belated First Anniversary

Belated First Anniversary

Fun with Vimgolf 2: Sum your vimgolf rank

How to use Emacs's increment register, query replace regexp and elisp forms in the regexp replace prompt to sum numbers

Fun with Vimgolf 1: Alphabetize the Directory

How to categorize and sort a directory of names and addresses using Org-mode and Org-mode's sorting function.

Executing Shell Commands in Emacs

How to execute shell commands in Emacs and redirect the contents of a buffer to the command and the output from said command back into Emacs. I also show how you can write your own elisp functions to do this automatically.

Improving the performance of Emacs's Display Engine?

Quick tip to improving the performance of Emacs's display engine.

Full text searching in Info mode with Apropos

How to use Emacs's apropos functionality to wild-card search all Info manuals on your system known to Emacs

Searching in Buffers with Occur Mode

How to use the built-in occur mode to get a hyperlinked list of all patterns that occur in a buffer, and an elisp function that searches all buffers with the same major mode.

Repeating Commands in Emacs

How to repeat the last executed command in Emacs and how to convert the last executed command in Emacs to a complex command you can store for later use.

Sorting Text by Line, Field and Regexp in Emacs

How to sort text in Emacs using sort-fields, sort-numeric-fields and sort-regexp-fields --- all powerful and advanced sorting commands.

re-builder: the Interactive regexp builder

re-builder is Emacs's built-in interactive regular expression builder.

Working with multiple files in dired

You can generate dired buffers in Emacs from the output from a find command, letting you work on files across many directories.

Removing blank lines in a buffer

How to remove blank lines and leave just one blank line in a buffer.

What's New in Emacs 23.3

What's new in Emacs 23.3

Using the commandline network utilities from Emacs

How to use Emacs's selection of commandline utilities, including: ifconfig, netstat, arp, traceroute, ping, dig and more

How to mark a buffer as "not modified"

How to mark a buffer as "not modified"

So I signed up for twitter...

So I signed up for twitter...

Toggling between Python buffers

How to toggle between python buffers and a python shell.

New python mode

New python mode

Mastering Key Bindings in Emacs

How to master key bindings in Emacs. Learn how to create your own global and local key bindings using a selection of elisp templates

Find files faster with the recent files package

How to use and augment Emacs's recentf recent files package with IDO mode to quickly find files you've visited before.

Make script files executable automatically

Quick trick to force all shell scripts to have the execute bit set on file save

Effective Editing I: Movement

My Effective Editing: Movement article will show you how to move around in buffers like an expert Emacs uses.

Making deleted files go to the trash can

Make Emacs move deleted files to the trash instead of physically deleting them.

Fixing the mark commands in transient mark mode

Making the mark commands more useful in Emacs by altering the behavior of push-mark and jump to mark

Mastering Eshell

How to Master Eshell, Emacs's own elisp shell implementation.

Converting between tabs and whitespace

How to convert a buffer to tab or whitespace indentation

Evaluating Elisp in Emacs

Learn how you can evaluate elisp -- by buffer, region or form -- or how to use Emacs's own interpreter, ielm, the interactive emacs-lisp mode.

Disabling Prompts in Emacs

How to get rid of annoying prompts in Emacs for a smoother, less intrusive experience.

Making CamelCase Readable with Glasses-Mode

Making CamelCase Readable with Glasses-Mode

Running Shells in Emacs: An Overview

Learn how to get started with Emacs's shell-mode, Emacs's shell wrapper; Eshell, Emacs's elisp shell implementation; and ansi-term, a terminal emulator.

Maximizing Emacs on startup

How to maximize Emacs on startup.

Making tooltips appear in the echo area

Make tooltips appear in Emacs's echo area instead of in a popup.

Olé! Diacritics in Emacs

How to use input methods and unicode character insertion to insert unicode code points and diacritics.

Highlighting by Word, Line and Regexp

How to highlight phrases, regular expressions and lines with highligh-phrase, highligh-regexp and highlight-lines-matching-regexp.

Introduction to Ido Mode

A thorough introduction to IDO mode, a flexible and very powerful completion package for Emacs.

An Emacs Tutorial: Beginner's Guide to Emacs

A beginner's guide to Emacs that will help you move past the tutorial