The best way to learn Emacs
What is the best way to learn more about Emacs? This question comes up a lot, I like to answer it in my own way. For me, there were 2 things that helped most: reading blog posts about how people use Emacs to solve problems, and learning how to read the manual.
The manual is a set of hypertext documents (but not HTML) with an
ancient and essoteric browser
Info-mode. It has a built-in search
engine, and since all the information you need to know is in a
single place, it is much easier to use than a web search engine like
Google. So step #1 is learn how to use the manual page
browser and search engine.
1. A cheat sheet
Opening the manual:
C-h i— open the Info-mode app, which lists a
menuof all installed manuals. If the Emacs manual has been installed on you computer, it will be listed here, but other very useful manuals are listed as well.
C-h r— read manual, jumps straight to the Emacs manual table of contents, skipping the list of all other manuals you get with
Enter— view the docuemnt hyperlinked under the cursor.
q— quit, hides the manual and goes back to where you were before reading the manual. It will remain in the background and save your place.
i— search the index for a word with tab completion. When you press
i, a search box opens up (usually at the bottom of the screen), and you just start typing a search term. Press Tab to auto-complete the search term. Use this function at times when you would ordinarily use Google, when you aren't sure what to name the thing you are looking for. Type a word, press tab, see if any results are listed.
g— search all chapter subheadings with tab completion. This can be more effective than searching the keyword index because usually chapter headers contain the keywords you are looking for serving as a label or tag directly on the most relevant information.
C-g— cancel search, will cancel-out of the search box, press this key combination if you had pressed
sbut you decide you don't want to run a search. After pressing
C-gthe cursor will return to where it was and you can continue browsing.
m— search the chapter subheadings in the current
menuwith tab completion. Use this when in a
menupage, which is the Emacs jargon for a
table of contents, it is much faster than simply searching for a word with
s— full-text search with regular expressions. I don't use this often, the index search (
i) is usually good enough. But if you think there might be some text in the manual that exists but it isn't listed in the index or table of contents, you can search for everything.
C-s— ordinary text search, kind of like using
Ctrl-Fin the web browser, searches through the current page of text.
Navigating, flipping through pages
l(lowercase L) — back, as in the
backbutton in your web browser, jumps back to the page you were looking at before.
r— forward, as in the
forwardbutton in your web browser, which will undo what the
L(capital L) — show history, i.e. the history of pages you have visited.
u— up section, will go to the section heading up above the current section, e.g. if you are in section 4.5.6, pressing
utakes you to section 4.5.
t— top level, go back to the top-level table of contents.
C-l— scroll page to center around cursor. Press this a few times in a row to scroll the page such that the cursor is at the top, bottom, or center of the display screen.
M-v— scroll down and scroll up a full page.
That is all!
There are other keys you can learn, but those above are all of the keys you need to know to browse the Emacs manual pages as efficiently as you would in a modern web browser.
2. Read bloggers who Emacs
I never had trouble learning the basics of Emacs, even though it is nothing like any other text editor you've used before. There is an interactive tutorial in the Emacs manual that steps you through the basics of moving around, editing, splitting windows, and running commands. Also, almost every single blogger who has ever written an introductory text on Emacs, every vlogger who has ever made a video introducing Emacs, has explained how to do basic editing in Emacs. So I don't need to discuss that here.
But what is more important, and what you can really learn from Emacs bloggers, is how people use Emacs to solve problems on their computer, especially by automating a repetitive task, or by using an Emacs app that provides a clever user interface to an external piece of software like Find, or Git. So I recommend anyone learning Emacs try to observe how some of the long-time Emacs users use Emacs to solve problems on their computer. This is the best way to learn more advanced topics. And I hope to write a few articles on advanced topics here on this blog as well, if I feel like a particular solution has not received enough attention.
The best resources as of this article being written are:
Mickey Peterson has written an entire book called Mastering Emacs, and even if you do not buy his book, he has an extensive collection of Emacs-related blog articles.
Sacha Chua, who is an avid Emacs enthusiast, and spends a lot of her free time oganizing events and putting together a newsletter, check out her blog (RSS). She is also well-known for her hand-drawn infographics, here is one on learning Emacs.
David Willson, who runs his own online community called
System Crafters,with a number of vlogs demonstrating Emacs use cases (also on YouTube).
Mike Zamansky has a whole series of articles and accompanying videos on how to use Emacs.
The Irreal Blog has been posting articles for some 14 years now, and they are enthusiastic about Lisp programming and Emacs.
Protesilaos Stavrou is something of a gem. A Greek gentleman who once worked in law (at the Greek EU office for legislative review), and had never even touched a computer until roughly the age of 20 when he started writing reports for university classes on computers in the library, with hunt-and-peck typing until he became more practiced. He bought his own laptop to avoid spending so much time in the library, and someone recommended to him Linux. With no prior computer experience to frustrate his learning, he took to Linux like a fish in water. Eventually he learned Emacs, and is now skilled enough in Lisp programming to contribute his own source code to the community. He pubilshes a lot of material about both technology and philosophy on his blog and often accompanies this material with YouTube videos.
Karthik Chikmagalur —
Karthinks Bloghas articles on a variety of topics, including Emacs.
The Emacs Wiki has a mix of recent and very outdated pages, but this is often a good place to look for clues about how to solve problems
The GNU ELPA package archive (app store), and the Non-GNU ELPA app store are both great places to find apps for Emacs that might solve a problem you are having. Shop around, try things, have fun! The
Non-GNUELPA is a separate repo with less stringent, more permissive legal standards for the software posted there. GNU ELPA requires you to transfer your copyrights to your code over to them before you can publish, Non-GNU ELPA does not.
There are many others, I will try to keep this post up to date with more resources.