Quote from the bottom:
“To keep up with decreasing computer memory capacity and disk space, many other functions and files have been eliminated in Emacs 30.2.”
Honesty, not such a wild proposition in 2026 with new hardware generations offering the same or less RAM and storage!
WalterGR 1 hours ago [-]
There’s some great stuff in there.
> As part of our continuous struggle to make Emacs simpler, we’ve removed the `margin` face, so text shown in display margins will now use the same `default` face as the rest of buffer text. Our long-term goal is to remove faces completely, thus leaving the Emacs with just two colors, so we gradually remove more and more faces as we go.
pvaldes 35 minutes ago [-]
what?, goldenrod face vanished?
2 hours ago [-]
kragen 3 hours ago [-]
How unfortunate that glibc has removed support for unexec. Although it wasn't a very widely used feature, it seems like the kind of orthogonal powerful feature that distinguishes one platform from another, like Unix's fork(), or I/O redirection, or strace, or not needing different system calls to write text and binary files. In an alternate universe, you could imagine unexec support being generalized to support broader classes of applications for purposes such as process migration, high-availability failover, and bug reproduction (as with rr), instead of being removed.
taeric 2 hours ago [-]
I always assumed it was a bit of a common practice from image based development practices. I'm now assuming I was incorrect on that being the case?
I'd love to read a good history of the different development styles. I know we often have a good exploration of the parts of an executable file. I don't recall seeing a good exploration of different compilation/build styles through the years.
kstrauser 1 days ago [-]
Between treesitter and eglot (read: LSP), there’s not much from other editors I miss when using Emacs. I’ve been on a Zed kick for a while but I hear the call of the GNU. This may be the week I declare .emacs bankruptcy and start again with a clean setup, seeing how much of my old third-party config I can replace with builtins.
mickeyp 9 hours ago [-]
AI is very good at Emacs Lisp - esp GPT. So you'll have an easier time around today!
kstrauser 2 hours ago [-]
It really is! For anyone who’d wanted to try Emacs but found it overwhelming, AI is game changing.
BTW, I’ve been using Emacs for like 30 years. I’m comfy with it. The bankruptcy is more about throwing out an old config that’s gotten big and crufty and restarting doing things the new way. For example, trying all the new completion stuff instead of corfu/vertico/etc., which are supremely nice but perhaps no longer essential. Similarly, a few years ago I went from lsp-mode to eglot, because it’s built in and a nice baseline.
thom 5 hours ago [-]
Yeah, I've always had the problem in Emacs that I know some quality of life feature would be possible to implement, but it'd take me hours or days so I just end up going back to work. With gptel, I've been able to really take control of my environment. And what's great is the LLM can write better LLM-integration functions too so you really end up with the perfect harness for whatever you're doing.
wmedrano 12 hours ago [-]
Are there any Zed features you're going to miss? Is the AI notable?
kstrauser 11 hours ago [-]
Not really, no. Zed’s a fine editor and I have nothing but good to say about it. I just happen to prefer Emacs more. Its keystrokes are burned into my muscle memory. And because its config files are literally executable code, there’s nothing too crazy for Emacs. Can it do XYZ? Absolutely, if you tell it to!
As to AI: Emacs continues to have zero built in. If you like it, though, it supports any agent you might want to use. I was highly amused the first time I wanted to use my own company’s agent and found it was already well-supported by a popular package.
And honestly, Emacs + a coding agent = magic for anyone who wanted to use it but was intimidated by Elisp. “Hey Droid, tell Emacs to swap the command and option keys on my Mac.” “Ok, done!” It’s a ludicrously powerful combo.
ubercore 7 hours ago [-]
I went full circle on AI. For an in-editor experience, Zed is top notch. But I've found I actually prefer just to go back to claude code + Zed.
LeBit 3 hours ago [-]
And if the correct keystrokes are burned into your muscle memory, you can opt for Evil mode.
froh 6 hours ago [-]
I infer you don't use magic?
kstrauser 2 hours ago [-]
Why would you infer that? Magit’s great!
imglorp 5 hours ago [-]
You mean magit?
alfiedotwtf 3 hours ago [-]
After realising you can modify the transient menus pretty easily, magit has been even more wonderful now
rtpg 17 hours ago [-]
Bit of a tangent but does anyone have good learning materials on doing things with Emacs Lisp beyond just staring at the source of packages?
I have the Mastering Emacs book and read through most of it, which gives me a good idea for some stuff... but I really would like to have good ideas for the right kind of design patterns for common things.
rwl 5 hours ago [-]
You don't have to just "stare" at the source; you can interact with it! Emacs is incredibly well documented and you can learn a ton with just C-h f (i.e. M-x describe-function) and C-h v (i.e. M-x describe-variable). In an Elisp source file, use those commands whenever you don't know exactly what a function or variable does. Read the description, and click on the hyperlinks to see the source. This is IMHO the best way to learn how to actually get things done. If you don't know what function or variable you're looking for, M-x apropos and its variants will be helpful.
I don't have a good reference (other than the Elisp manual) for high-level design patterns, but in general, Elisp is very flexible and already has what you'd need to implement any patterns you know from elsewhere. Decide on your data structures first. Probably the most important lesson you might not know yet is to use buffers, not strings, to do most text manipulation.
rootnod3 11 hours ago [-]
All of Prot's packages[1] are really nicely designed imho.
He’s also got a Youtube channel if you prefer to learn that way.
rootnod3 9 hours ago [-]
And coachings!
MarsIronPI 15 hours ago [-]
Have you read through the Emacs Lisp Intro and Elisp manuals in Info? The latter is especially helpful as a reference.
wmedrano 15 hours ago [-]
I started getting a little more into ELisp after reading The Land of Lisp, though its probably a bit basic. If I were to try to get better at ELisp through reading books/docs, I'd look into Common Lisp material.
flowerlad 23 minutes ago [-]
I wish they would make Arm64 Windows binaries a standard part of the release. Intel is on its way out.
qazxcvbnm 4 hours ago [-]
I’ve heard that the graphical browser is back on emacs! Xwidgetwebkit was dead since emacs 29, and for a while I was left pining for a good graphical browser in emacs.
Since then, friendly AI emacsers stuffed usable versions of graphical browsers into emacs, but those never felt truly emacs-native and did leave quite a bit to be desired (embr, the least unusable of the pack, being referred to here; among its warts - unreliable link detection; forcing “tabs” within a buffer; non deterministic unresponsiveness; causing C-g to lag).
Finally I can rid myself of such impurities from core emacs!
diegoeche 1 hours ago [-]
I love emacs. I used emacs for 20 years. But I haven't used it as much since moving to codex/claude. Even with vterm, can't really use TUIs that well inside IMO. Or at least, had way too many issues where emacs/vterm was the culprit
awesome, I was looking for a libghostty emacs terminal about a month ago. vterm just does not cut it for me.
prometheus76 4 hours ago [-]
The part the author shared about the huge overhead cost of firing up emacs, especially in a multi-user environment (I learned about emacs vs vi holy war back on a multi-user Solaris environment), our Unix professor strongly encouraged us to learn vi. He said "vi is part of every standard Unix install, so when you ssh into a box, you'll always have your editor and it won't steal all the CPU from the other users when you fire it up."
Feels monumental to see that come to an end decades later.
jasperry 3 hours ago [-]
That's funny, because our professor didn't tell us that and I remember doing my projects with four terminal windows logged into the server and three of them running separate instances of emacs :D. I wonder how much I bogged down that mid-90s HP-UX machine.
wmedrano 19 hours ago [-]
I'm excited for the user-lisp/ changes. It'll let me create custom lightweight packages and have them lazily loaded by just sprinkling ;;;###autoload over interactive commands and modes.
bpye 9 hours ago [-]
Is there a better way to get started with Emacs than the built in tutorial? I've tried a couple times (due to increasing annoyance with VS Code), but have struggled to get to a point where I feel productive enough.
mickeyp 9 hours ago [-]
I recommend the tutorial (Help -> Tutorial) from the menu bar inside Emacs to get you started. Don't listen to people telling you to disable this or that. Use your mouse and arrow keys to get started. Don't worry about what other people are doing with their Emacs too much. Pick one thing you want to do with Emacs and focus purely on that (writing Go, taking notes in Org, etc.) and avoid a wholesale move unless you have infinite time and patience.
My book is of course an option also, but it costs money.
alfiedotwtf 3 hours ago [-]
Your book should be mandatory. It’s a gem and I think I’d still be on Vim or VSCode without it!
mickeyp 2 hours ago [-]
Thank you so much for the kind words :) I'm glad I could help you switch!
kstrauser 2 hours ago [-]
So, uh, v31 update coming soon? crossing-fingers.gif
mickeyp 1 hours ago [-]
Yeah I'll be working on it. Been busy on another product (see bio) which has taken up a year-plus of my time. Hence the lack of regular postings!
kstrauser 11 minutes ago [-]
Lovely! I’ll check it out.
jmmv 6 hours ago [-]
Start with Doom Emacs. I haven't felt the need to customize almost anything since I switched (from VSCode) 4 years ago.
TBH, I had used Emacs before VSCode and had accumulated a bunch of cruft in my .emacs configuration, and I never felt it was "mine" anyway...
roundcan7998 7 hours ago [-]
Mastering Emacs: worth every cent. (ignore what author says about it costing money)
It is what got Emacs to “stick” for me.
Just get it already
throwa356262 5 hours ago [-]
Can you expand this a little bit? What makes this book different?
roundcan7998 3 hours ago [-]
It speaks to people like you and me.
Folks in the modern age, who want to get up to speed with an old trusty tool, without the biases of other folk getting in the way.
You get up to speed enough, that you can then go find your own way.
Mickey’s writing is conversational yet pithy and laconic. (in a very good way)
systems 1 hours ago [-]
for me the highlight of this release is the docked speedbar, it took them too long, but its finally here
dired mode is fine, and i appreciate it, but having the folder view docked on the left, was something i missed in emacs, happy its finally here
CodeCompost 11 hours ago [-]
The section under "User Lisp Directory" seems incomplete. I was expecting a second paragraph.
brabel 9 hours ago [-]
I thought the same, but later on in the article they go into more details and explain that lisp files under that directory will be auto loaded and commands they add should just work! Really good stuff.
thataccount 3 hours ago [-]
It is clear that this article simply does not know the power of Vi/VIM!
shevy-java 2 hours ago [-]
This operating system just got better!
Quitschquat 12 hours ago [-]
Anyone know if Zaretskii resigned over the portable dumper?
vocx2tx 10 hours ago [-]
He's in the MAINTAINERS file[0], and the person with the most commits in 2016-2026 period, so no.
The pdumper has been around for yonks, and afaik Zaretskii is still maintaining.
jmclnx 3 hours ago [-]
I do not know what temacs is, but on Slackware 15 w/emacs-30.2, temacs does not exist. I wonder if temacs is something used in other operating systems ?
I hope to upgrade to 31.1 on Slackware either today or tomorrow. I will grab the source from Slackware current and compile/install :)
mickeyp 2 hours ago [-]
You typically won't see it installed at all because it's considered an intermediate artefact. You'll have to compile Emacs yourself from source to get it.
bos 3 hours ago [-]
temacs, in older versions of Emacs, is an intermediate build product, never something that is installed. It’s created fairly late during the build, then loaded up with the standard library, undumped, and that is the emacs that is installed.
jmclnx 1 hours ago [-]
Well for what it is worth, I build Emacs 31.1 on Slackware 15.0 and it has an odd issue. I get this message below but issuing that command does not fix it, the warning still appears. So either I need to move from ccrypt to a different encryption utility or revert. For now I will revert and decide if I want to use gnupg instead. I use ccrypt for my password list text file.
for more information.
* Warning (files): Missing ‘lexical-binding’ cookie in
"/usr/share/emacs/site-lisp/ps-ccrypt.el".
You can add one with ‘M-x elisp-enable-lexical-binding RET’.
See ‘(elisp)Selecting Lisp Dialect’ and ‘(elisp)Converting to Lexical Binding’
for more information.
I used the "regular" slackbuild. native-compilation slackbuild fails with a missing library.
But Emacs 31.1 is in Slackware Current, so when Slackware is released I will be on it :)
bygosh 7 minutes ago [-]
you should report that bug to ccrypt, emacs is getting a lot more strict about lexical binding support (for good reason). it just needs ;; -- lexical-binding: t/nil -- at the top of the file.
pkal 23 hours ago [-]
I was annoyed by some of the comments in the "Packages" section, because it is clear that the author didn't try anything out but just scattered a few comments though out the file.
Regarding :vc and :load-path, this was obsoleted transitively due to the obsoleting of package-vc-install-from-checkout, which has portability issues. Bug#80604 goes into the background for this. This is NOT an obsoletion of the :vc keyword for use-package.
Regarding package-autosuggest, this is disabled because it doesn't interest most users. It is targeted at new users who aren't familiar with the packages, and might be interested in new major modes. Experienced users are generally either familiar with the packages and use them or prefer to stay in fundamental mode. The minor mode is enabled as part of the newcomers theme!
No mention of package-review-policy, which especially in the "age of AI" is an important feature is you want to be careful about external code you are using on your system.
Oh and on the topic of the newercomers theme, the reason it is not mentioned "higher up" in the NEWS file, besides it being the wrong section, is that it is highlighted on the splash screen, where new users are going to find it, instead of a NEWS file.
brabel 9 hours ago [-]
The post mentioned so many things and went into lots of interesting discussions about the new stuff . I find it amusing you think it’s ok to criticize the author for not trying things out and not mentioning your favorite topics. Here’s an idea: write a better post yourself.
mickeyp 10 hours ago [-]
But I do test things out, by virtue of often running the tip of master branch and submitting bug reports. But I cannot test every mention in the NEWS, so on that part you are right.
Deprecating :vc + :load-path without expressing why is a curious oversight. And "portability issues" is all fine and good, but why embed custom git clone + build grammar code in the treesit.el file if VC checkout portability is a concern? Surely VC is better at it than a bunch of brittle string concat code in treesit.el I do not understand why one part works and another supposedly does not.
The change is especially infuriating as for most of us it actually worked fine, and user-lisp directory does not solve the retrieval and setup problem, which `use-package` for all its flaws at least standardises.
Most users probably do care about discoverability of related packages, existing user or not. But that's in the eye of the beholder.
`package-review-policy` is security kabuki theatre. Someone who wants to harm an Emacs user can find many other ways of doing so with or without this flag.
cod3ninja 4 hours ago [-]
Nice, Emacs is so old school!
hirvi74 11 hours ago [-]
I hope my Treesitter issue has been fixed with macOS. I gave up on the problem about this time last year.
By installing the grammars on the user's behalf, I think I might be in luck!
I don't remember the exact issue, but I remember having to dig through the release histories of each of the poorly documented ABI version for each language to find whichever versions was compatible.
I've got my fingers crossed.
mickeyp 9 hours ago [-]
My Combobulate page has suggested package versions but note I have not yet confirmed 100% compatibility with every single Emacs 31.1 major mode yet, though all tests for Combobulate do pass in 31
github.com/mickeynp/combobulate
fergie 8 hours ago [-]
Have also struggled with this- would be great to see a fix
yanhangyhy 6 hours ago [-]
i just gived it a try. works like a charm, treesitter + lsp. i asked cursor to help me with the config.
hirvi74 18 minutes ago [-]
Omg, I can finally return to my beloved for all the languages I use. Thank you for the update.
hn5xz7plcj 4 hours ago [-]
[dead]
yewenjie 4 hours ago [-]
Now would be the time for someone to use AI to rewrite the Emacs core to make it faster.
Honesty, not such a wild proposition in 2026 with new hardware generations offering the same or less RAM and storage!
> As part of our continuous struggle to make Emacs simpler, we’ve removed the `margin` face, so text shown in display margins will now use the same `default` face as the rest of buffer text. Our long-term goal is to remove faces completely, thus leaving the Emacs with just two colors, so we gradually remove more and more faces as we go.
I'd love to read a good history of the different development styles. I know we often have a good exploration of the parts of an executable file. I don't recall seeing a good exploration of different compilation/build styles through the years.
BTW, I’ve been using Emacs for like 30 years. I’m comfy with it. The bankruptcy is more about throwing out an old config that’s gotten big and crufty and restarting doing things the new way. For example, trying all the new completion stuff instead of corfu/vertico/etc., which are supremely nice but perhaps no longer essential. Similarly, a few years ago I went from lsp-mode to eglot, because it’s built in and a nice baseline.
As to AI: Emacs continues to have zero built in. If you like it, though, it supports any agent you might want to use. I was highly amused the first time I wanted to use my own company’s agent and found it was already well-supported by a popular package.
And honestly, Emacs + a coding agent = magic for anyone who wanted to use it but was intimidated by Elisp. “Hey Droid, tell Emacs to swap the command and option keys on my Mac.” “Ok, done!” It’s a ludicrously powerful combo.
I have the Mastering Emacs book and read through most of it, which gives me a good idea for some stuff... but I really would like to have good ideas for the right kind of design patterns for common things.
I don't have a good reference (other than the Elisp manual) for high-level design patterns, but in general, Elisp is very flexible and already has what you'd need to implement any patterns you know from elsewhere. Decide on your data structures first. Probably the most important lesson you might not know yet is to use buffers, not strings, to do most text manipulation.
[1]: https://protesilaos.com/emacs/
Since then, friendly AI emacsers stuffed usable versions of graphical browsers into emacs, but those never felt truly emacs-native and did leave quite a bit to be desired (embr, the least unusable of the pack, being referred to here; among its warts - unreliable link detection; forcing “tabs” within a buffer; non deterministic unresponsiveness; causing C-g to lag).
Finally I can rid myself of such impurities from core emacs!
Feels monumental to see that come to an end decades later.
See also my reading guide: https://www.masteringemacs.org/reading-guide
My book is of course an option also, but it costs money.
TBH, I had used Emacs before VSCode and had accumulated a bunch of cruft in my .emacs configuration, and I never felt it was "mine" anyway...
Just get it already
Folks in the modern age, who want to get up to speed with an old trusty tool, without the biases of other folk getting in the way.
You get up to speed enough, that you can then go find your own way.
Mickey’s writing is conversational yet pithy and laconic. (in a very good way)
dired mode is fine, and i appreciate it, but having the folder view docked on the left, was something i missed in emacs, happy its finally here
[0] https://github.com/emacs-mirror/emacs/blob/master/admin/MAIN...
I hope to upgrade to 31.1 on Slackware either today or tomorrow. I will grab the source from Slackware current and compile/install :)
But Emacs 31.1 is in Slackware Current, so when Slackware is released I will be on it :)
Regarding :vc and :load-path, this was obsoleted transitively due to the obsoleting of package-vc-install-from-checkout, which has portability issues. Bug#80604 goes into the background for this. This is NOT an obsoletion of the :vc keyword for use-package.
Regarding package-autosuggest, this is disabled because it doesn't interest most users. It is targeted at new users who aren't familiar with the packages, and might be interested in new major modes. Experienced users are generally either familiar with the packages and use them or prefer to stay in fundamental mode. The minor mode is enabled as part of the newcomers theme!
No mention of package-review-policy, which especially in the "age of AI" is an important feature is you want to be careful about external code you are using on your system.
Oh and on the topic of the newercomers theme, the reason it is not mentioned "higher up" in the NEWS file, besides it being the wrong section, is that it is highlighted on the splash screen, where new users are going to find it, instead of a NEWS file.
Deprecating :vc + :load-path without expressing why is a curious oversight. And "portability issues" is all fine and good, but why embed custom git clone + build grammar code in the treesit.el file if VC checkout portability is a concern? Surely VC is better at it than a bunch of brittle string concat code in treesit.el I do not understand why one part works and another supposedly does not.
The change is especially infuriating as for most of us it actually worked fine, and user-lisp directory does not solve the retrieval and setup problem, which `use-package` for all its flaws at least standardises.
Most users probably do care about discoverability of related packages, existing user or not. But that's in the eye of the beholder.
`package-review-policy` is security kabuki theatre. Someone who wants to harm an Emacs user can find many other ways of doing so with or without this flag.
By installing the grammars on the user's behalf, I think I might be in luck!
I don't remember the exact issue, but I remember having to dig through the release histories of each of the poorly documented ABI version for each language to find whichever versions was compatible.
I've got my fingers crossed.
github.com/mickeynp/combobulate