Mastering Emacs
masteringemacs.org · Personal blog · on HN since 2010
Mickey Petersen writes guides, release roundups, and a book about using and customizing the Emacs text editor.
What HN saysCommenters recommend the Mastering Emacs book as an excellent base for learning Emacs, and follow the site for roundups of new Emacs releases.
141HN people shared it
94linked it in comments
85stories submitted
3.2Kstory points
3 months agolast shared
2010people per year2026
Most-shared posts
- 1Mastering Emacs36 people · 229 points · first shared 2011 · 99 comments on HN
- 2Emacs: Mastering Eshell8 people · 162 points · first shared 2014 · 40 comments on HN
- 3“Mastering Emacs” ebook announced8 people · 72 points · first shared 2014 · 28 comments on HN
- 4Mastering Eshell.7 people · 16 points · first shared 2010 · 5 comments on HN
- 5Keyboard Shortcuts every Command Line Hacker should know about GNU Readline6 people · 10 points · first shared 2022 · 1 comments on HN
- 6How to Write a Book in Emacs (2015)5 people · 220 points · first shared 2015 · 37 comments on HN
- 7Mastering Emacs: What's new in Emacs 29.15 people · 17 points · first shared 2023 · 2 comments on HN
- 8Speed up Emacs with libjansson and native elisp compilation5 people · 3 points · first shared 2021 · 1 comments on HN
- 9Combobulate: Structured Movement and Editing with Tree-Sitter5 people · 2 points · first shared 2023 · discussion on HN
- 10Tree Sitter and the Complications of Parsing Languages4 people · 225 points · first shared 2021 · 134 comments on HN
- 11Running Shells in Emacs: An Overview4 people · 79 points · first shared 2010 · 24 comments on HN
- 12An introduction to Magit, an Emacs mode for Git4 people · 24 points · first shared 2014 · 1 comments on HN
- 13Demystifying Emacs's Window Manager4 people · 4 points · first shared 2022 · discussion on HN
- 14Securely Generating TOTP Tokens with Emacs4 people · 2 points · first shared 2022 · discussion on HN
- 15Running Shells and Terminal Emulators in Emacs4 people · 1 points · first shared 2022 · discussion on HN
What HN people wrote when they linked it
sph · 2026-06-18
Seconded. If you want to learn doing things the Emacs way, I recommend the Mastering Emacs book by Mickey Petersen who roams among these threads. It is excellent.
https://www.masteringemacs.org/
This provides an excellent base and exploration of the builtin packages, then you can customize your experience on top and make it your own.
tammer · 2025-11-01
I will second the recommendation to start with vanilla emacs. That isn't to disparage releases like spacemacs & doom. I simply found those to be more useful once I fully understood the power that comes with a fully reprogrammable editor. There is a learning curve and there is also a mental model to adopt, and I think that adopting the mental model is easier when starting raw and building up from scratch. Once you feel comfortable maybe try spacemacs or doom to see if they offer advantages for your workflow.
I also highly recommend the resources at https://www.masteringemacs.org
znpy · 2025-04-24
Emacs user here, have used vscode in the past.
Yep, vscode is more intuitive.
However emacs is mostly the kind of thing you dedicate a couple of months of discomfort and enjoy for the rest of your life. Quite literally.
Spending some money on the “mastering emacs” book (https://www.masteringemacs.org/) is worth imho.
Bonus point: little by little you start enjoying doing more stuff in emacs. It’s a meme, but it’s true.
endgame · 2025-04-14
I don't follow that scene much, either, but I do subscribe to https://www.masteringemacs.org/ which has good roundups when new major versions come out. I also have several open tabs from there about various libraries I need to fold into my own emacs configuration.
omnicognate · 2023-03-19
"Mastering" emacs (certainly any version of "mastering" it that takes a whole year) requires learning a programming language, elisp. This is because emacs isn't an editor. It's a language and environment for rapiy developing textual user interfaces (TUIs) and "customising" or "configuring" it is programming. To just learn to operate it as a text editor certainly doesn't take a year, but if that's the approach you're going to take I wouldn't recommend emacs. Use VS Code or a JetBrains IDE or whatever instead.
The linked article isn't very good, BTW. If you're interested in actually mastering emacs, the book "Mastering Emacs" [1], whose author comments here regularly, is the place to start.
[1] https://www.masteringemacs.org/
mickeyp · 2022-10-15
I've written about Emacs for, hm, nearly 13 years [1]. My recommendation is picking one thing you want to start doing in Emacs, and then focus on getting good at that.
Maybe that's doing your shell/terminal work in Emacs. Perhaps it's note taking and organising your thoughts, tasks, and agenda. Perhaps email. Maybe it's small shell scripts at first, before you move on to larger tasks, like full-on programming like you do in your daily job (I am guessing.)
If you try to do everything, while trying to remain productive at your job, you'll probably abandon Emacs.
I've written a book on Emacs, which will definitely teach you Emacs. But it's not a _requirement_ to read a book on it. The manual and tutorial and both good places to start if you'd rather do it for free.
[1] https://www.masteringemacs.org/
nextos · 2020-05-25
Sadly, I am not aware of any.
Perhaps some articles and the book in https://www.masteringemacs.org/.
At some point, I would like to write an introduction to Emacs, Org, Notmuch and friends. Their docs are great if you have been using Emacs for a long time. But if you are a newcomer, the learning curve is really steep. And it shouldn't be like that. At their core all these are conceptually simple, easy to understand, and to hack.
Emacs and friends are IMHO really worth investing time into due to the Lindy effect. They will be around when most of the current software is gone. Besides, a text-mode Lisp VM (which is what Emacs is), makes your life as a developer much more enjoyable.
pdxpatzer · 2020-04-15
start with using graphical Emacs on your platform of choice. Avoid using Emacs through a text terminal, to begin with ...
then start with
Absolute Beginners Guide to Emacs
http://www.jesshamrick.com/2012/09/10/absolute-beginners-guide-to-emac…
follow up with Emacs' tutorial and online help
follow up with Mike Zamansky videos on YouTube
https://cestlaz.github.io/stories/emacs/
finally check out the blog entries (and the book !) at
https://www.masteringemacs.org/
dleslie · 2019-07-29
Not OP, but the Emacs manual is excellent[0] and there's Mastering Emacs[1] and Sacha Chua's blog[2].
Because it's lisp you can inspect just about everything. See an unfamiliar symbol? Put your cursor on it and press M-.
0: launch help from within Emacs
1: https://www.masteringemacs.org/
2: https://sachachua.com/blog/emacs/
iLemming · 2019-07-23
https://www.masteringemacs.org is the best books on Emacs I have ever read. But truly, is just about doing things in Emacs. Start using Emacs and whenever you need to get something done, just google it. After a few days, you'd have sufficient vocabulary to navigate yourself around. Don't be obsessed with configuring and adjusting it to your needs at that point. Jump into that rabbit hole later, when you feel you know what you're doing.
rekado · 2017-11-22
Mastering Emacs by Mickey Petersen is excellent: https://www.masteringemacs.org/
artlogic · 2015-11-15
If you'd like a whole book on this topic, I can't recommend Mickey Petersen's "Mastering Emacs" enough: https://www.masteringemacs.org/
pzone · 2015-11-13
M-x customize!
Here's a great website: https://www.masteringemacs.org
You're right though, a basic "bootstrap your .emacs" tutorial would be very helpful.
binarysoul · 2013-03-15
some bite sized emacs tips http://rawsyntax.com/blog/categories/learn-emacs/
and a great introduction to setting up emacs http://batsov.com/articles/2012/10/14/emacs-on-osx/
posts on various emacs topics http://www.masteringemacs.org/
runekaagaard · 2023-12-02
Brews coffee... Oh yes, Emacs is my forever editor. It was created before I was born and will (hopefully) join my digitally converted consciousness on humanity's travels to the stars!
I got tired of switching editors for different languages (PyCharm was too slow for JSX code) and decided to invest in getting Emacs to behave like a decent editor. That took a while :)
I've programmed in Python, Clojure, Nim, Cython, JS, JSX, and a host of other languages. LSP support is getting REALLY good with three strong contenders: the minimal eglot that is in Emacs core, lsp-mode which is the most complete solution, and lsp-bridge that is super fast.
The single thing I love about Emacs is that everything is text. I can do a project-wide search (find-file-in-project), turn off read-only mode, use delete-non-matching-lines to remove stuff I don't want, turn on read-only mode and peruse the remaining matches. Then I can turn on wgrep-ag mode in the search results buffer, search and replace changes, and commit them to all the files. It's a powerful concept.
We are not a single-editor shop, we have Vim, PyCharm, Sublime, etc.
Extra compatibility is just a package-install away, and the ecosystem is thriving. My must-have utilities are expand-region, iedit, multiple-cursors, whole-line-or-region, pdf-tools, try, find-file-in-project, helm-ag, rg, undo-fu, and the list goes on :)
It has great workflows for compilation, buffer (file) switching, window management, tiling, and SO much more.…
G3rn0ti · 2022-11-08
Before you actually dive into coding in Emacs may I suggest to do the following:
1) Get yourself a copy of https://www.masteringemacs.org/ and read it. That gives you a very good overview on the design philosophy of Emacs and many practical tips.
2) Explore vanilla Emacs a little bit. Run the built-in tutorial. Explore Emacs's customization UI. Play tetris.
3) Familiarize yourself with how you install Emacs packages from ELPA and MELPA. On your first steps you can use Emacs' built-in UI. But, ideally, you want to learn "use-package.el" as quickly as possible because that will simplify your configuration a lot.
Coming from VScode you might feel a little bit overwhelmed at this point as you will be starting to use a Lisp macro routinely (!) to install editor extensions. Check out the "Emacs from scratch" series on YouTube for a helpful guide.
4) What programming languages are you using? For React projects you might need to use "webmode.el" which is not built-in. Similar situation with Clojure or Rust. If you want more convenience, you also might want to take a look on "lsp-mode.el" that adds more code introspection features. It is not crazily complicated to install and setup but definitely not beginner friendly.
5) Try to identify your most important extensions you are using right now in VScode. What are the features you cannot live without? Then embark on a google search what the most suitable replacements are in Emacs. For example, VSCode's "Restclient" extensions is…
TeMPOraL · 2018-05-28
Spend another half an hour, only effectively. Open the tutorial, do it. Sure, the keybindings are weird[0], but try to approach them without preconceptions or prejudice. Imagine you're learning professional software for a task you've never done before. Say, 3D modeling or audio work. There, you would just accept the conventions without second-guessing them.
Work on the tutorial, then spend about half an hour to a hour writing some text and code, so that you get used to interactions. Save a couple of files. Open a couple of files. You should be now comfortable enough to do basic work in Emacs. From there, it's practice, reading and exploration.
The cool thing about Emacs is that it's self-documenting. CTRL+h is your friend (in Emacs-speak, C-h). You remember a key combination but are not sure what it does? C-h k key-combination. Remember a function but not where is it bound? C-h w command, or C-h f command - the latter will give you a full documentation of it (and works for other elisp functions as well). Sorta-remember the command? C-h a whatyouremember - will run a regexp search on a list of all commands. Don't remember neither the key nor the command? M-x apropos whatyouremember - this will run a regex search on everything.
Also, the full documentation for Emacs should be available under C-h i. Or, if you are serious about Emacs and have some money to spare, I can recommend this book: https://www.masteringemacs.org/. It will get you up to speed in no time.
Beyond that,…
samiur1204 · 2013-03-13
Hey there,
I used to Vim too, and started using Emacs since I started doing a lot of Clojure development. Since then, I have not looked back. The power and flexibility of Emacs is second to almost none. Just the other day, I was working on a Latex file, and I had a buffer open with a pdf viewer right next to my tex file, that would update as soon as I saved changes to my tex file. And the community has done almost everything you can think of already. If not, just write it yourself!
To get started, I would highly recommend using Emacs Prelude: https://github.com/bbatsov/prelude
It's incredibly useful and user friendly, and makes your Emacs all the more powerful. This is a good intro article to it: http://batsov.com/prelude/
The other blog that I find useful even as a fairly seasoned Emacs user is http://www.masteringemacs.org/
It has some great guides and tutorials for beginners too.
smitty1e · 2026-07-10
Nice.
I'm going to go through https://github.com/emacs-tw/awesome-emacs as well as https://www.masteringemacs.org/
so-cal-schemer · 2026-05-03
Yes. It's important to leave room on the shelf for yet another copy of the next edition of Computers for Seniors for Dummies:
https://linkencore.iii.com/iii/encore/record/C__Rb51571246__Sfor%20sen…
btw, Andres Raba brought us the preferred online edition of SICP:
https://sarabander.github.io/sicp/
Also, I'd like to note that in my experience no public library can provision online-only books. I've been unable to get any to acquire Mastering Emacs for example.
https://www.masteringemacs.org/
signa11 · 2025-11-06
i would heartily recommend micky-petersen's : Mastering Emacs (https://www.masteringemacs.org/about)
slu · 2025-11-06
The "Mastering Emacs" is great. But, you don't need it to get started, instead check https://www.masteringemacs.org/reading-guide
dingnuts · 2025-11-01
Mickey Peterson's blog/book Mastering Emacs is where I wish I had started.
https://www.masteringemacs.org/article/beginners-guide-to-emacs
Sacha Chua maintains a blog roll with a huge part of the Emacs community represented, also: https://planet.emacslife.com/
Also everything Prot writes is great, here's his getting started guide: https://protesilaos.com/codelog/2024-11-28-basic-emacs-configuration/
zokier · 2025-09-08
But almost every editor worth its salt these days has structural editing.
https://docs.helix-editor.com/syntax-aware-motions.html
https://www.masteringemacs.org/article/combobulate-structured-movement…
https://zed.dev/blog/syntax-aware-editing
Etc etc.
lambda_foo · 2025-03-04
Sure, you will need to write a major mode but honestly it's not that hard to get syntax highlighting working. If you follow something like https://www.masteringemacs.org/article/lets-write-a-treesitter-major-m… plus using M-x treesit-explore-mode it took me 1 day to get treesitter support for OCaml, starting from knowing nothing about how Treesitter works with Emacs to a semi-decent highlighting and indentation setup. The indentation was harder to get working, but all up 300 lines of elisp including whitespace and comments.
Y_Y · 2024-10-31
I can also vehemently endorse Andrea Corallo's work on native-comp/libgccjit. The compilation can be finicky so I recommend looking at the AUR script here: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=emacs-git or this lovely article: https://www.masteringemacs.org/article/speed-up-emacs-libjansson-nativ…
Also, for those of you who didn't know what GCMH was:
https://github.com/emacsmirror/gcmh
> GCMH - the Garbage Collector Magic Hack
> Enforce a sneaky Garbage Collection strategy to minimize GC interference with user activity. During normal use a high GC threshold is set. When idling GC is triggered and a low threshold is set.
nanna · 2024-05-29
Thanks for everything you do for the Emacs community, mickeyp. I've learned so much from https://www.masteringemacs.org/
hprotagonist · 2024-02-17
emacs has had occur and multi-occur since the 80s that can do this. it’s amazing.
more recently, interfaces to tools like ripgrep also have the ability to have an editable mode, super handy for refactoring.
(and of course you can edit file names in bulk, too ..)
https://www.masteringemacs.org/article/searching-buffers-occur-mode
https://rgel.readthedocs.io/en/latest/
https://www.gnu.org/software/emacs/manual/html_node/emacs/Wdired.html
ParetoOptimal · 2023-08-01
https://www.masteringemacs.org/book
There are good free ones too, but this one is still best IMO.
dustfinger · 2023-03-03
I have been using emacs since around 2005. If you are looking to immerse yourself in emacs, then I highly recommend switching your windows manager to EXWM [1]. If you are looking to get over the learning curve, then I recommend buying the book Mastering Emacs [2]. If you are interested in learning new and creative ways to use emacs, then I recommend attending the next emacs conference [3]. Also, please join #emacs on librechat [4]. For IRC on emacs I really love erc-mode [5].
[1]: https://github.com/ch11ng/exwm/wiki
[2]: https://www.masteringemacs.org/
[3]: https://emacsconf.org/
[4]: https://libera.chat/
[5]: https://www.gnu.org/software/emacs/manual/html_mono/erc.html