What’s new in Emacs 28.1?

by abzugon 4/6/2022, 11:23 AMwith 284 comments

by spudlyoon 4/6/2022, 3:39 PM

A couple things about the content of this post, that people aren't talking about. Mastering Emacs by Mickey Petersen is a solid book on Emacs and a good companion to the official manual. Mickey usually has an update to Mastering Emacs not long after a new version is released, which is great. I'm thankful for his many contributions to the Emacs community, and I really enjoyed reading his thoughts on the new features and additions to Emacs 28.

Secondly, the breadth of the changes in Emacs 28.1 is staggering, especially considering that Emacs 27.1 was released some 19 months ago. I think it's safe to say that despite all the hand-wringing about the antiquated email-centric way that Emacs is developed, an impressive amount of work is getting done. Emacs development is alive and well.

by pimeyson 4/6/2022, 10:13 PM

Wayland support didn't make it... Oh well it is in version 29.

I've been using the wayland version with libgccjit many months now from their git repo and it is extremely snappy and stable editor.

My strategy to keep all of this together is a nix derivation that compiles the latest master branch with all the plugins. Oh and my config is an org file with clear comments...

https://github.com/pimeys/nixos/tree/main/desktop/emacs

All reproducible...

Btw. I recommend SystemCrafters video series Emacs from scratch. It teaches how to make a vanilla emacs to work like doom emacs does. It was helpful for me to understand the magic behind doom...

https://m.youtube.com/playlist?list=PLEoMzSkcN8oPH1au7H6B7bB...

by jasteron 4/6/2022, 12:56 PM

I have been testing Emacs 28 for a few weeks now, as it was reported to improve performance on LSP integration (which was sometimes sluggish for me with rust).

I have to say I wasn't disappointed. It's now comparatively blazingly fast. I hugely recommend to give it a try if you work in emacs with LSP.

Since my distro had not packaged it yet, I installed it from guix instead (package `emacs-next`). It worked like a charm.

by rayineron 4/6/2022, 12:30 PM

I was an Emacs user back in my software writing days, but I thought I had left it behind when I became a lawyer. Over the past month or two however I’ve moved more and more of my workflow over to Emacs.

I started with using Org Mode and PDF tools for note taking and reviewing PDFs and task management: https://news.ycombinator.com/item?id=30492373. More recently I switched my email over to mu4e: https://www.emacswiki.org/emacs/mu4e. Unfortunately I can’t get it to interface properly with Office 365, which has heavily locked down POP/SMTP. So I used a couple of Power Automate flows to store incoming emails into a maildir format directory in OneDrive, which I then read from mu4e: https://en.wikipedia.org/wiki/Maildir. I also use Power Automate flows to grab my calendar and store it to Org files, and watch for queued emails and send send them. Power Automate is just about the worst programming environment ever devised, but because UNIX systems like RFC 2822 (email) and maildir are so simple it didn’t take much fiddling at all!

Ironically, writing a bit of glue to get everything into Emacs offers better integration between email, calendar, todos, and notes, than just using Office 365’s own tools. After trying a ton of web/electron based tools for these purposes, going back to Emacs makes me think of this scene from Star Wars: https://m.youtube.com/watch?v=7hb8AYnRb-4

I’m using the Emacs 28.1 test release on Windows and the Emacs-Mac Port on Mac: https://bitbucket.org/mituharu/emacs-mac/src/master/. The latter has nice features like double buffering that make Emacs, while not modern feeling, quite presentable.

For such a huge change, the elisp native compilation works extremely nicely with every package I’ve thrown at it. Totally stable and ready for prime time.

by gjvcon 4/6/2022, 12:24 PM

The native compilation part is the highlight. Could someone who knows about these things explain the difficulty Debian has in getting emacs 28 in -unstable ? (currently on 27 according to https://packages.debian.org/unstable/emacs)

by ilovecachingon 4/6/2022, 12:16 PM

It amazes me that developers pick closed source Jetbrains and Microsoft spyware for the program they rely on to make a living when Emacs and Vim/Neovim get better by leaps and bounds every year. Emacs has packages that VSCode can only dream of having and with Emacs distributions or really just lsp-mode you can have a full fledged IDE with 0 fiddling. I recently did some digging into the editor usage of noteworthy programmers by going through interviews (usesthis.com was a great resource) and found that 99% of programmers whose names are recognizable are still using Vim/Emacs. Clearly these tools are not holding anyone back from doing great things.

Edit: Just yesterday HN was overtly critical of Warp for being a proprietary, closed source, telemetry laden terminal, but they’ll suddenly lose their morals when it comes to text editing over perceived conveniences of an IDE vs. a “text editor” with LSP.

The point of Vim/Emacs isn’t just that they are good editors. It is also you voting with your installs and money for free and open source tools. You already reap the benefits of the Linux ecosystem, the least you can do is help out by picking a FOSS editor.

by da39a3eeon 4/6/2022, 4:17 PM

I used Emacs for 20 years, contributed to popular open source emacs projects, and am the maintainer of a couple of emacs packages with small numbers of users.

It's wonderful and extremely powerful having everything in lisp; don't bother with emacs if you're not interested in writing lisp.

One silly thing that I could never get to grips with is the way the minibuffer always seems to get stuck asking me a question, but the cursor isn't in the minibuffer. Or it's in some sort of recursive minibuffer mode. So many times I've just mashed C-g repeatedly in irritation!

I stopped using Emacs last year in order to access the high quality LSP experiences that are available for Typescript and Rust and other languages in VSCode. I'm firly happy with the configurability of VSCode and generally fairly happy with the move. VSCode needs Emacs' window-configuration registers though.

by Decabyteson 4/6/2022, 4:03 PM

The post yesterday about Pharo 10, and the Lisp Curse repost has me thinking about text editors again. I think that some fusion of the introspection abilities of Smalltalk with the good parts of Emacs might allow us to create the text editor of the future™. One that take everything good about Lisps and everything good about programming in Smalltalk. I'd need to actually explore how Smalltalk does its IDE environment to be able to comment more, but I was initially very impressed with the programmability of it during the video I watched about it.

by asonethon 4/6/2022, 4:03 PM

I aspired to learn Emacs but gave up a number of times.

It's in that category of things that I believe would be Good For Me but that have such high activation energy that it never becomes a high enough priority. It's like the documentary I keep skipping over in my streaming queue, the free weights gathering dust in the basement, or the guitar I finally gave away after having only learned a few chords.

There's got to be a word to describe the realization that something is probably never going to be high enough priority to me to be worth the investment.

by klik99on 4/6/2022, 12:56 PM

> Adding right-click context menus is a natural extension to Emacs’s already-extensive support for the mouse (even if a lot of people don’t use it.)

If emacs could support plan9 acme-style chords with custom commands then I'd probably use the mouse a lot more in it - acme convinced me that mousing around can be just as fast as being on the keyboard if the UX is well designed.

by matthews2on 4/6/2022, 2:13 PM

Thank you to everyone that contributed to Emacs for another great release :) (also thank you Mickey for explaining all the changes!)

by viksiton 4/6/2022, 3:36 PM

Given all the emacs ninjas here - what’s the best way to do JSX/TSX formatting while playing nice with js2-mode, tide and web-mode? I’ve been stuck for months on finding a good config and almost wanted to move to VS Code to try it out. Then, while using it I just couldn’t do without emacs buffers and panels flexibility — so moved back :))

by dv35zon 4/6/2022, 3:22 PM

I’m interested in emacs / org-mode / org-roam. My goal is to have a local notes solution (replacing Obsidian, Apple Notes), and have the notes automatically published on the web as a crosslinked personal knowledge base. I have somewhat achieved this with Obsidian/markdown files + git + Hugo + Render. I write stuff. Check it into git. Push, and it deploys as a website. Feel pretty good about cobbling that together. But Obsidian/markdown is tough to replicate the cross-link nature & ease or use of a wiki, and it still doesn’t help out with Task, calendar, etc.

I’ve taken a couple swings at setting up Emacs… oof, but as a newbie to the ecosystem, but frankly its just been tough to plow through. Each guide/tutorial seems to have a whole different set of packages, settings, etc; then we get into Doom emacs, etc. I’ve got keyboard shortcuts printed out - but I still end up in weird jams where Emacs has opened up 3+ panes (buffers), and I can’t figure how to even close/quit them.

Truly, it reminds me of when I jumped head first in the Java ecosystem, trying to figure out (1) java, (2) intelliJ, (3) Spring boot. Too many simultaneous brain battles…

What I’m hoping to find is a “Zero to Functioning personal information system (notes, todo, contacts, calendar, kb)” guide. I suppose, written for a willing & motivated newb?

From reddit, online tutorials, walkthru videos - it SEEMS the pieces are out there. But I’m hoping to find the guy who figured this all out a year ago, documented a functional-but-opinionated stack / workflow, and I could follow that for awhile (as training wheels).

Can anyone suggest something like this? I’d be even be willing to pair up with someone and document/publish this, if it doesn’t exist.

I mentioned it on another Emacs HN thread: I’m convinced of the power of this stack, but I’m hoping someone does the “Unix —> NeXT -> MacOS”, and puts together the Easy Button of this.

For example, my brother is writing a book - he’s not super technical but can get around. I can tell that he would benefit from this system - but I can’t fairly recommend it, because hell - I haven’t been able to coherently get it to work, and doubting he would want to be modifying init files and all that.

Hoping this plea for Emacs help reaches a previously frustrated newbie who figured it out, who can help me out (and others). Thanks!

by tut-urut-ututon 4/6/2022, 12:01 PM

Finally, native compilation is part of the release. In day to day use, it provides a nice speed bust in many use cases.

by jonpalmiscon 4/6/2022, 2:27 PM

I almost wish I never tried Emacs. Ignorance is bliss, and Emacs ruined all other text editors for me.

There are absolutely areas that others do better, but the self-documenting “living program” nature is too much to give up; everything you ever need to know or do is a few keystrokes away.

by epolanskion 4/6/2022, 12:09 PM

OT for this particular release, but I'd like to point out that one of the best features of emacs and its ecosystem is that plugins, libraries and software are almost always self-documenting.

You want to read the documentation or delve into the implementation of a feature of your programs it is literally right there in your editor instead of having to jump to some, potentially outdated, website documentation or having to figure out where to look at things from a sterile github page.

I wish that the idea of self documenation was more widespread in other ecosystems.

E.g. the ecosystem I know most, JavaScript, would have this potential, but very often dependencies are compiled and there is no such self-documenting culture so best case scenario you get types you can _almost_ trust and some jsdoc that you can _almost_ trust.

I guess the fact that the lisp and elisp community in particular has always cultivated this practice is the deciding factor rather than the languages itself.

by rcconfon 4/6/2022, 2:12 PM

I miss Emacs, but I moved to Visual Studio Code. I used Emacs for over 8 years so releases like this use to make me so happy.

On the bright side, I still use Emacs bindings in Visual Studio Code. Maybe I should spin up Emacs again and give it another shot on my new M1 (maybe it can do the auto complete stuff faster now.)

by NeutralForeston 4/6/2022, 2:26 PM

I've been using Emacs for 2/3 years now, especially to take notes. It's been a bit difficult at the beginning but I really enjoy it now, it's provided many features I needed to organize my thoughts.

by gspron 4/6/2022, 2:18 PM

Knowledgeable Emacs folks in this thread: Does anyone know the status of Wayland-native Emacs? It's my last X/XWayland application, and it looks terrible on high-DPI displays.

by yxhuvudon 4/6/2022, 3:16 PM

> If you’re using projectile or something else, start switching over; this is the new default target for all other integrations

It is pretty sweet something like this is getting built in, but I have not found a replacement for 'with-project-root from the (now seemingly missing) project-root package.

edit: Oh, they also add a new 'with-existing-directory' macro that should be easy to compile to do the same thing. sweet.

by nooberminon 4/7/2022, 3:34 AM

An aside, but can someone explain to me the use or utility of ligatures? To be frank people who use them seem like those who change their i3 layout every few months, they seem/feel like a gimmick to me. I hope that isn't too harsh, perhaps I can be convinced they have use.

Ligatures remind me of the symbols in APL. There, I can see sort of a use if your language requires it but generally in the terminal? I don't get it.

by KabirKwatraon 4/6/2022, 6:42 PM

I started using Emacs as my primary editor about a year ago with doom. Emacs 28 has good changes, but it's missing pixel scrolling which at this point almost every other editor has. I believe Emacs 29 is going to finally include the feature. There's a pretty good plugin called good-scroll.el that does exactly this on older versions, but it can be buggy sometimes.

by kovekon 4/6/2022, 3:14 PM

I always like to ask: Has the pixel-scrolling story gotten better on Emacs? I like how I can scroll smoothly on Visual Studio Code.

by etra0on 4/6/2022, 5:50 PM

I remember seeing vim as a complex solution for text editing, and I didn't touched it for that same reason. A couple of years later I spent sometime learning it and now it's my day-to-day tool for writing code.

I feel the same with Emacs, I've been reading (very little) about it and I wonder if I dedicate the same time I did for learning vim I'd be in the Emacs bandwagon, but at the same time I don't feel that curious about it, because I feel happy with vim.

I've tried some versions with vim bindings but the problem remains the same, the energy to explore the rest just wasn't there.

by kidsilon 4/6/2022, 3:28 PM

Only thing I'm missing from Emacs is the ability to completely freeze all packages and configs.

As soon as I feel like everything is stable and great, it decides to update 180 packages while I'm trying to edit a file and destroys something in my setup.

If anyone knows a way to prevent all updates and "freeze" a version that would be excellent.