What’s New in Emacs 28.1?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • Zigi - Workflow assistant built for devs & their teams
  • SonarLint - Clean code begins in your IDE with SonarLint
  • Scout APM - Truly a developer’s best friend
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • doom-emacs

    An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]

  • lsp-mode

    Emacs client/library for the Language Server Protocol

    Don't think out of the box, but https://github.com/emacs-lsp/lsp-mode works rather well with emacs 28 from my experience. Emacs "distros" such as Spacemacs and Doomemacs both make use of it, for a nearly "out of the box" experience.

  • Zigi

    Workflow assistant built for devs & their teams. Automate the mundane part of your day, with live actionable messages for your GitHub & Jira tasks.

  • org-pdftools

    A custom org link type for pdf-tools

  • sublimity

    Smooth-scrolling and minimap like sublime editor

    Fair (though I recommend you give kinesis a try: https://kinesis-ergo.com/keyboards/advantage360/ ).

    Separately, I just want to throw it out there, you guys should try sublimity: https://github.com/zk-phi/sublimity

    Particularly, the minimap is awesome because it provides an intuition about where one is and that just feels nice.

  • intellij-community

    IntelliJ IDEA Community Edition & IntelliJ Platform

    > Jetbrains products are only partially open source

    You mean the repository at [0] contains code which is not licensed under an open source license? The only license mentioned at the root is Apache 2.

    [0] https://github.com/JetBrains/intellij-community

  • evil

    The extensible vi layer for Emacs.

    What parts did you find difficult?

    When I first started, I found the keybindings odd, but now I love them since the core set of shortcuts—C-a, C-e, C-f, etc.—work "everywhere" from the terminal, to GNU readline-based programs, to even native macOS text boxes. If you don't like the default keybindings, you can change them or use the Evil package [0] for Vim bindings.

    If you want to get up and running quickly, I'd check out Doom Emacs [1] which is easier to configure and takes care of a lot of configuration for you. I personally use a reasonably-minimal config I wrote myself [2]. If you like to tinker, I'd recommend writing your own config, as it will also teach you a lot about Emacs.

    If you have any questions feel free to reach out—contact info in my profile.

    [0] https://github.com/emacs-evil/evil

  • .emacs.d

    My personal Emacs configuration (by jonpalmisc)

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • Zero-to-Emacs-and-Org-roam

    Step by step guide from zero to installing and setting up Emacs and Org-roam on Windows 10

    Have you seen this? https://github.com/nobiot/Zero-to-Emacs-and-Org-roam It's still a work-in-progress but it may be along the lines of what you're looking for.

    Personally, I wouldn't recommend setting up org-roam at first. It's excellent, but it's just going to be too daunting for a beginner when combined with all the other things. I'd start by just learning emacs and org-mode. Core org-mode has enough functionality built-in to start building knowledgebases, and the org-mode manual is excellent. You can add-in org-roam later. (And you might find that org-roam is overkill and something like howm mode to get backlinks is enough.) The beauty of emacs is that you can move your notes from one system to another easily.

  • straight.el

    🍀 Next-generation, purely functional package manager for the Emacs hacker.

    You might want to check out straight.el [0] in replacement of package.el; it can pin package versions, etc. It is used by the very popular Doom Emacs [1] to lock package versions for reproducible config reasons.

    [0] https://github.com/raxod502/straight.el

  • Funny, just dealt with the whole O365 authentication just this week. With moving to 2 factor authentication you need to use OAuth 2 to do anything with it. I have my (work) O365 email forwarded, so I do have normal IMAP access. I use isync/mbsync [1] to receive email, goimapnotify [2] to get pushed new email, read/reply/etc with mu4e [3] and org-msg [4] and org-mode, and until recently just plain SMTP to send mail. This last part will break with 2 factor, but found oauth2ms [5] to set up the OAuth to work with O365 SMTP. The trick was to find the "tenet ID" from the Azure page of your organization and to use Thunderbird's credentials [6] (or another mail program, since I can't make new app registrations on Azure to have my own "application"). That should also allow you to use IMAP with OAuth 2 as well, but haven't done that since I still have the forwarding. (As usual, I think the Arch Wiki [7] covers most of this too.)

    [1] http://isync.sourceforge.net/

    [2] https://gitlab.com/shackra/goimapnotify

    [3] https://www.djcbsoftware.nl/code/mu/mu4e.html

    [4] https://github.com/jeremy-compostella/org-msg

    [5] https://github.com/harishkrupo/oauth2ms

    [6] https://hg.mozilla.org/comm-central/file/tip/mailnews/base/s...

    [7] https://wiki.archlinux.org/title/Isync#Using_XOAUTH2

  • org-msg

    OrgMsg is a GNU/Emacs global minor mode mixing up Org mode and Message mode to compose and reply to emails in a Outlook HTML friendly style.

    Funny, just dealt with the whole O365 authentication just this week. With moving to 2 factor authentication you need to use OAuth 2 to do anything with it. I have my (work) O365 email forwarded, so I do have normal IMAP access. I use isync/mbsync [1] to receive email, goimapnotify [2] to get pushed new email, read/reply/etc with mu4e [3] and org-msg [4] and org-mode, and until recently just plain SMTP to send mail. This last part will break with 2 factor, but found oauth2ms [5] to set up the OAuth to work with O365 SMTP. The trick was to find the "tenet ID" from the Azure page of your organization and to use Thunderbird's credentials [6] (or another mail program, since I can't make new app registrations on Azure to have my own "application"). That should also allow you to use IMAP with OAuth 2 as well, but haven't done that since I still have the forwarding. (As usual, I think the Arch Wiki [7] covers most of this too.)

    [1] http://isync.sourceforge.net/

    [2] https://gitlab.com/shackra/goimapnotify

    [3] https://www.djcbsoftware.nl/code/mu/mu4e.html

    [4] https://github.com/jeremy-compostella/org-msg

    [5] https://github.com/harishkrupo/oauth2ms

    [6] https://hg.mozilla.org/comm-central/file/tip/mailnews/base/s...

    [7] https://wiki.archlinux.org/title/Isync#Using_XOAUTH2

  • oauth2ms

    Funny, just dealt with the whole O365 authentication just this week. With moving to 2 factor authentication you need to use OAuth 2 to do anything with it. I have my (work) O365 email forwarded, so I do have normal IMAP access. I use isync/mbsync [1] to receive email, goimapnotify [2] to get pushed new email, read/reply/etc with mu4e [3] and org-msg [4] and org-mode, and until recently just plain SMTP to send mail. This last part will break with 2 factor, but found oauth2ms [5] to set up the OAuth to work with O365 SMTP. The trick was to find the "tenet ID" from the Azure page of your organization and to use Thunderbird's credentials [6] (or another mail program, since I can't make new app registrations on Azure to have my own "application"). That should also allow you to use IMAP with OAuth 2 as well, but haven't done that since I still have the forwarding. (As usual, I think the Arch Wiki [7] covers most of this too.)

    [1] http://isync.sourceforge.net/

    [2] https://gitlab.com/shackra/goimapnotify

    [3] https://www.djcbsoftware.nl/code/mu/mu4e.html

    [4] https://github.com/jeremy-compostella/org-msg

    [5] https://github.com/harishkrupo/oauth2ms

    [6] https://hg.mozilla.org/comm-central/file/tip/mailnews/base/s...

    [7] https://wiki.archlinux.org/title/Isync#Using_XOAUTH2

  • eglot

    A client for Language Server Protocol servers

    I use it at my current job in which I work in a large C++ codebase. I formerly used CLion.

    Whether Emacs is an IDE or not depends how you define IDE. I use Eglot [0] for LSP integration; this gives me IDE-like features like "jump-to-definition", syntax error highlights, warnings, etc. and integrates with company-mode [1] for code completion. This handles most of my needs for writing code.

    As for other things like a file tree, I've found that the built in `project-find-file` command combined with `vertico` [2] and `orderless` [3] makes finding files and navigating around projects easier; that pair behaves similarly to CMD+P in Sublime Text or VS Code. There are file tree packages out there, but I've found that I don't really need a file tree in practice and that I prefer navigating around projects with fuzzy file search and grep.

    [0] https://github.com/joaotavora/eglot

  • company-mode

    Modular in-buffer completion framework for Emacs

  • vertico

    :dizzy: vertico.el - VERTical Interactive COmpletion

  • orderless

    Emacs completion style that matches multiple regexps in any order

  • prettier-emacs

    Minor mode to format JS code on file save

    prettier-emacs[0] works well, and IIRC I think the JS/TS language servers can handle formatting, if you’re using LSP or eglot!

    [0]: https://github.com/prettier/prettier-emacs

  • nixos

    NixOS Configuration (by pimeys)

    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 plugin. 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...

  • .emacs.d

    Nate Eagleson's Emacs config. (by NateEag)

    That's weird. I use package.el and it only ever updates when I ask it to.

    The solution to this is too keep your elpa/ directory under version control.

    I use this hacked-up script to help me do that: https://github.com/NateEag/.emacs.d/blob/master/site-lisp/up...

  • acme-mouse

    Acme mouse-chording for Emacs

    Yeah, I never really looked at mouse binding, but does look quite simple.

    This implements acme chording for copy/paste and the approach looks straightforward: https://github.com/akrito/acme-mouse/blob/master/acme-mouse....

    And this package looks like a cool way to recreate the context sensitive text actions: https://github.com/cmpitg/wand

    Combining the approach from the first and the wand package could potentially surpass the acme experience by making it easier to customize and extend.

    My friend joked about how I'm religious about the keyboard, but really it's about the right tool for the job, and if I had an acme-like mouse experience with emacs I'd def be mousing around more often. Funny that compared to normal people I'm a keyboard fanatic but compared to majority of emacs users I'm on the mouse way more often :)

  • wand

    Execute actions based on text patterns, for Emacs (by cmpitg)

    Yeah, I never really looked at mouse binding, but does look quite simple.

    This implements acme chording for copy/paste and the approach looks straightforward: https://github.com/akrito/acme-mouse/blob/master/acme-mouse....

    And this package looks like a cool way to recreate the context sensitive text actions: https://github.com/cmpitg/wand

    Combining the approach from the first and the wand package could potentially surpass the acme experience by making it easier to customize and extend.

    My friend joked about how I'm religious about the keyboard, but really it's about the right tool for the job, and if I had an acme-like mouse experience with emacs I'd def be mousing around more often. Funny that compared to normal people I'm a keyboard fanatic but compared to majority of emacs users I'm on the mouse way more often :)

  • braindump

    knowledge repository managed with org-mode and org-roam. (by jethrokuan)

    If you haven't already, I'd suggest checking out what the creator of org-roam does for publishing his own notes: https://github.com/jethrokuan/braindump

  • Scout APM

    Truly a developer’s best friend. Scout APM is great for developers who want to find and fix performance issues in their applications. With Scout, we'll take care of the bugs so you can focus on building great things 🚀.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts