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
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 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.
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.
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
Learn what's new in Emacs 28.1
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.
The input-method feature, usually reserved for inserting diacritics and symbols, can be repurposed to insert emoji.
I talk about tree sitter, CEDET, and Combobulate -- my "paredit-style" package that's designed to work with most programming languages.
I've released the third edition of my book, Mastering Emacs, with additional content and changes covering Emacs 27.
Emacs 27 lets you display native color emoji and both traditional and new-fangled programming ligatures, if your font supports it.
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.
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.
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.
After a long wait Emacs 26.1 is out and it's full of cool new features and tweaks.
Shell & Comint Secrets: History commands
A text adventure game; the game of life; tetris; and a psychoanalyst. They are just some of the fun and games in Emacs.
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
One year anniversary of my book Mastering Emacs
Learn about use-package, a declarative way of configuring packages that ensures you'll never go through ".emacs bankruptcy" ever again.
Spotlight on Flycheck, an excellent as-you-type syntax checker.
Magit 2.x is out, and it's full of new features.
How to write a book in Emacs
My ebook Mastering Emacs is now out
I announce that I am working on a Mastering Emacs ebook
Emacs has finally switched to Git, after ten months of fixing 29 years of accumulated source control cruft.
Four year anniversary and new website
My Emacs Video interview with Sacha Chua
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.
How to quickly switch directories like fish shell in Emacs's own shell wrapper.
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 comes with a powerful batch tool that replaces find and xargs with a far more powerful yet easier to use interface in Dired.
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.
Discover what's new in Emacs 24.4 as I annotate most of the changes made to the new Emacs version.
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.
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.
This simple package jumps between symbols that match the ones point is on.
Dired buffers can be made editable, and both filenames and permission bits can be edited like plain text.
How to write your own basic comint interpreter for Cassandra.
What's New in Emacs 24.3. I annotate the NEWS file and explain some of the changes made.
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.
How to transposition text in Emacs by using Org-mode's table capturing functionality and regular expressions.
How to swap words in Emacs using regular expressions and Emacs's advanced sort-regexp-fields.
How to use Jedi, an advanced completion library for Python with a handy Emacs wrapper.
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
Hwo to force Emacs to always use UTF-8 or other coding systems when you open files or interact with processes.
How to use Emacs's compile command to run arbitrary programs and scripts, such as unit tests, interpreters or programs.
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.
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.
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.
Part two of my annotated NEWS file for Emacs 24
Part one of my annotated NEWS file for Emacs 24
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
How to use Emacs's increment register, query replace regexp and elisp forms in the regexp replace prompt to sum numbers
How to categorize and sort a directory of names and addresses using Org-mode and Org-mode's sorting function.
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.
Quick tip to improving the performance of Emacs's display engine.
How to use Emacs's apropos functionality to wild-card search all Info manuals on your system known to Emacs
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.
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.
How to sort text in Emacs using sort-fields, sort-numeric-fields and sort-regexp-fields --- all powerful and advanced sorting commands.
re-builder is Emacs's built-in interactive regular expression builder.
You can generate dired buffers in Emacs from the output from a find command, letting you work on files across many directories.
How to remove blank lines and leave just one blank line in a buffer.
What's new in Emacs 23.3
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"
So I signed up for twitter...
How to toggle between python buffers and a python shell.
New python mode
How to master key bindings in Emacs. Learn how to create your own global and local key bindings using a selection of elisp templates
How to use and augment Emacs's recentf recent files package with IDO mode to quickly find files you've visited before.
Quick trick to force all shell scripts to have the execute bit set on file save
My Effective Editing: Movement article will show you how to move around in buffers like an expert Emacs uses.
Make Emacs move deleted files to the trash instead of physically deleting them.
Making the mark commands more useful in Emacs by altering the behavior of push-mark and jump to mark
How to Master Eshell, Emacs's own elisp shell implementation.
How to convert a buffer to tab or whitespace indentation
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.
How to get rid of annoying prompts in Emacs for a smoother, less intrusive experience.
Making CamelCase Readable with Glasses-Mode
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.
How to maximize Emacs on startup.
Make tooltips appear in Emacs's echo area instead of in a popup.
How to use input methods and unicode character insertion to insert unicode code points and diacritics.
How to highlight phrases, regular expressions and lines with highligh-phrase, highligh-regexp and highlight-lines-matching-regexp.
A thorough introduction to IDO mode, a flexible and very powerful completion package for Emacs.
A beginner's guide to Emacs that will help you move past the tutorial