r/emacs

New contributors to GNU Emacs over time
▲ 172 r/emacs

New contributors to GNU Emacs over time

I was reading the Wikipedia page for Emacs and found this statement:

>As of 2025, GNU Emacs has had 1,608 individual committers throughout its history.

This made me curious about how first-time contributors to Emacs are distributed over time. I took a local checkout of the Emacs mirror repository and scanned the commit history. For each commit, I recorded the Git author name and email, treated the pair (author_name, author_email) as an identity, and then kept only the first commit where each identity appears. Finally, I plotted the cumulative number of distinct authors over time. I used Git's .mailmap normalization (git log --use-mailmap) to map known name/email variants to the same person when the repository provides such mappings.

This is just a quick/fun experiment, not a rigorous study. There are obvious caveats. The most obvious ones are possible duplicated identities not covered by .mailmap.

Still, the cumulative plot surprised me. It seems to show two very different slopes, with a clear change around 2010: before then, relatively few new author identities appear per year; after then, the number rises much faster.

What is good news for me: Emacs did not decline in popularity. It can still attract new contributors, presumably younger fellow Emacs enthusiasts.

Does anyone know what explains the change around 2010? Was it related to migration away from older version-control workflows, when migrating from CVS to Bazaar and then Git, or simply to a change in how patches were attributed to their original authors?

u/a_alberti — 10 hours ago
▲ 41 r/emacs

How to use terminals inside emacs?

The most annoying thing for me about emacs is using terminal inside it. I'm trying doom emacs and using terminal is really annoying because keybinds goes to emacs or evil instead of shell, I have some configuration for bash like set -o vi and I can't use this inside emacs vterm.

I can't do C-p, C-n to go backword and forward in command history because emacs intercepts these key binds and so on... I once opened vim in vterm and had to restart

So for people that uses terminal and terminal apps a lot, what do you use? How you configured this? What's your tips and tricks for terminals in emacs?

reddit.com
u/reFossify — 19 hours ago
▲ 14 r/emacs

Abbreviations, but locally

I found this article https://www.rahuljuliato.com/posts/abbrev-mode, but I do not want to pollute my .emacs too much. Hence the question on how to make local abbreviations.

Here is my workaround (for LaTeX projects, but the idea is quite general), but please tell me if this can be achieved by some other trick buried in the Emacs' manual.

  1. Create a file local-abbrevs.el with the following content for example (from one of my works):
;;; local-abbrevs.el --- Local abbreviations -*- lexical-binding: t; -*-
;;;
;;; Commentary:
;;; Abbreviations for the current project
;;; 
;;; Author: indrjo
;;;
;;; Code:

(defun inline-math (expr)
  "Put mathematical expression EXPR between dollars."
  (format "\\(%s\\)" expr))

(defun abbrev-math (abb full)
  "If outside a math env, then put expand ABB into FULL within a math env."
  `(,abb
    ""
    ,(lambda () (insert (if (texmathp) full (inline-math full))))))

(defun abbrev-only-in-math (abb full)
  "Expand ABB into FULL only if point is in a math env."
  `(,abb
    ""
    ,(lambda () (insert (if (texmathp) full abb)))))

(define-abbrev-table 'LaTeX-mode-abbrev-table
  `(;; common expressions
    ("fol" "first-order language")
    ("struc" "structure")
    ("mdl" "model")
    ;; particular symbols
    ,(abbrev-math "cll" "\\mathscr{L}")
    ,(abbrev-math "mda" "\\mathfrak{A}")
    ,(abbrev-math "mdb" "\\mathfrak{B}")
    ,(abbrev-math "mdc" "\\mathfrak{C}")
    ,(abbrev-math "bn" "\\mathbb{N}")
    ;; arrows
    ,(abbrev-only-in-math "not" "\\not")
    ,(abbrev-only-in-math "and" "\\land")
    ,(abbrev-only-in-math "or" "\\land")
    ,(abbrev-only-in-math "ra" "\\to")
    ,(abbrev-only-in-math "rra" "\\Rightarrow")
    ,(abbrev-only-in-math "aa" "\\forall")
    ,(abbrev-only-in-math "ee" "\\exists")
    ,(abbrev-only-in-math "sbs" "\\subseteq")
    ,(abbrev-only-in-math "sqs" "\\sqsubseteq")))

(provide 'local-abbrevs)
;;; local-abbrevs.el ends here
  1. Append magic comments to other files, for instance
%%% Local Variables:
%%% ... stuff ... 
%%% eval: (load-file "./local-abbrevs.el")
%%% End:
  1. Just C-u C-c C-n or close and reopen Emacs (you will get a complain about security, but you can reply y or !) et voilà you can use your abbrevs.
u/indrjo — 13 hours ago
▲ 8 r/emacs

elixir-ts-mode: Highlighting and navigation for do/end, fn/end etc. keywords?

I wonder if it's somehow possible to make elixir-ts-mode highlight do/end, fn/end etc. keywords and basically treat them like other modes treat brackets, which in many cases is what they are in Elixir. Languages that share this syntax such as Ruby, Crystal etc. are the same way.

The mode should highlight keyword siblings when point is on them. So having point on the end of a do/end pair should highlight its do, if it's nested it should highlight only the one at the matching nesting level. Bonus would be if rainbow-delimiters or some other package can somehow color each indent level differently.

ruby-mode has this feature, but neither elixir-ts-mode nor ruby-ts-mode do. Is this maybe a limitation of tree-sitter support? Will 31.0 change something here?

elixir-ts-mode is integrated into emacs now, which is great, but I don't know where to suggest new features for the mode or ask questions now that it's not separately maintained. It was suggested that I take it to the emacs-devel list, but it seems to me they have more important things to do, especially since I can't figure out where this needs to be implemented or if it's even possible with current TS support.

reddit.com
u/psy-q — 19 hours ago
▲ 15 r/emacs+1 crossposts

Help me make sense of org mode

I'm trying make sense of org mode, espechially doom emacs defaults for managing notes and to-dos. I've never used anything like obsidian or others for to-dos or notes before, mainly used papers for making a simple to-do list. I'm new to emacs, I'm used to nvim and lazyvim. I started to use doom emacs recently mainly because it has vim keybinding and the best support for bidirectional writing I've found, haven't done any configs to it. I have been exploring it, hitting space and see what different keybinds do.

I want to know how am I supposed to use org mode for to-dos, notes, journaling. Are doom defaults good enough? I don't want to do much configurations since I'm knew to emacs and lisp and haven't used any knowledge/project management tools before, so I'm not sure what's the best setup for me yet. How to get started?

I would like a simple capturing capability on the fly for to-dos or ideas that comes to my mind while working, how to set this up?

reddit.com
u/reFossify — 1 day ago
▲ 70 r/emacs+1 crossposts

Memorize vocabulary on the go on Emacs Android

Strive to make Org-srs’s touch UI close to Anki to build a learning system for spare moments.

u/bohonghuang — 1 day ago
▲ 2 r/emacs

Need help figuring out newline behaviour in doom emacs

I've been using doom emacs for a few years now. Recently I did an update and the behaviour of `newline` changed. Now, when I hit <enter> `newline` will also insert characters to continue a comment block. Specifically, what I mean is if I am in a comment block and hit <enter> `newline` will now insert a comment marker at the beginning of a new line. This is incredibly inconvenient because 80% of my comments are one line only and for the remaining cases I already had a different shortcut to do just that. I don't want the default `newline` to do it.

However, I'm having a hard time figuring out what exactly triggers this. Using `C-h k` I see that the function invoked is `newline`. Reading the documentation nothing strikes me as the obvious candidate. I have `electric-indent-mode` but that's fine - I want the indentation, I don't want the comment marker.

I tried asking an LLM to help me figure this out but it just suggests breakpoints which is not that useful if I don't know where to break.

Any ideas on what is doing this? And how I can disable it?

reddit.com
u/FOSHavoc — 1 day ago
▲ 92 r/emacs

Announcing two new experimental MELPA channels

A few days ago we have published two new MELPA channels, MELPA Snapshots and MELPA Releases. For now these channels are considered experimental and coexist with the traditional channels MELPA (“regular” a.k.a. “unstable”) and MELPA Stable. Eventually the snapshots channel is going to replace unstable, and releases is going to replace stable. But don’t worry, if you are not ready to update just yet; the new channels are still considered experimental and the current thinking is that they won’t replace the traditional channels for around another year.

After years in the making, MELPA is finally moving away from using raw timestamps as version strings for development versions. While the traditional unstable channel uses the version string format YYYYMMDD.HHMM, the new snapshots channel uses RELEASE.0.YYYYMMDD.COUNT.

See the blog post (https://emacsair.me/2026/07/03/melpa-channels/) for the whole story. (Note the bit about your very own ELPA. ;)

reddit.com
u/tarsius_ — 2 days ago
▲ 24 r/emacs

neofetch.el

I made neofetch.el, which is a neofetch-like program for Emacs.

It gives information similar to what Neofetch gives, like your username@hostname and OS

codeberg.org
u/benja2998_kib — 2 days ago
▲ 97 r/emacs

Introducing graph-fa2 (browser free graph rendering)

graph-fa2 was originally developed to render force directed graphs in grove extra but now it's a generalised project that can be used for other use-cases. It gives you an org-roam-ui style experience directly in emacs using librsvg without a web browser.

To render a graph simply add a function to the click hook and create a function to turn your graph into a set of nodes and edges.

https://github.com/elij/graph-fa2

u/elijahcharles — 2 days ago
▲ 11 r/emacs

Emacs freezes during autocompletion (company/eglot)

&#x200B;

Hi everyone,

I am running into an issue where emacs freezes for a few milliseconds whenever I trigger the autocompletion. The freeze feels like the completion backend or LSP is blocking the editor.

I am trying to figure out whether this is caused by:

company-mode

eglot

the language server itself (I use vala-language-server)

or something else in my configuration.

Did anyone faced this issue or does anyone have any idea how to fix it, the issue is really annoying.

reddit.com
u/No-Natural-7412 — 2 days ago
▲ 42 r/emacs

What do you do in emacs?

I do Common Lisp development, and with SLIME in Emacs(nothing else) for more info, view my other post in r/emacs. I want to know what you guys, more experienced users, do in Emacs and have some suggestions. I am new to Emacs, and later will use it more probably.

So any suggestions, or any tips?

reddit.com
u/Big-Fill-5789 — 3 days ago
▲ 71 r/emacs+1 crossposts

modusregel: a simple, beautiful mode-line for Emacs

Find the modusregel project here:

https://codeberg.org/jjba23/modusregel

modusregel means mode line in the Dutch language.

This package provides a clean, simple, elegant, and beautiful mode line for Emacs (the bottom bar), built with customization, beauty and performance in mind. It is fully compatible with both Emacs GUI and TUI viewports.

  • Tree-Sitter Smart Major Mode-Mapping: prettifies major mode names, and detects -ts-mode variants (e.g., rust-ts-mode) and cleans them up beautifully (e.g., Rust).
  • LSP & Flymake Ready: Built-in, non-intrusive indicators for Eglot and Flymake counters.
  • Lightweight & Fast: Written in pure, efficient Emacs Lisp with performance in mind—no external dependencies.
  • TUI/GUI Parity: Designed to look crisp and aligned whether you are running Emacs in a terminal or a graphical window.
u/SandPrestigious2317 — 3 days ago
▲ 290 r/emacs

Doom Emacs: Why I Chose It Over Vim and Never Looked Back

Newest Emacs influencer bashbunni tells her Emacs story

youtube.com
u/jaafartrull — 4 days ago
▲ 55 r/emacs

New Prot video: Write with input method (e.g. French) and Jinx for spelling

Another great video by him. I didn't know about input methods, especially the postfix variants Prot is showing here are very useful to me.

youtu.be
u/the_cecep — 3 days ago
▲ 39 r/emacs

Helix is getting a plugin system that uses Scheme! (From an Evil-mode user perspective)

Just stumbled upon this and thought the r/emacs community would find it interesting: Helix is working on a plugin system based on Scheme!

As a dedicated Evil-mode user, I’m already a big fan of combining modal editing with the unmatched extensibility of a Lisp environment. Helix defaults to a Kakoune-style (selection-first) modal paradigm, but with this new Scheme plugin system, there is already a classic Vim emulation layer being implemented. Since that covers modal editing, maybe it's only a matter of time before someone uses Scheme to build out a full Emacs emulation layer too.

To be clear, Helix is strictly a terminal/TUI-only text editor. It obviously can't compete with the massive, unified application ecosystem of GUI Emacs (there's no native rendering for PDF view, web browsing, inline graphics, etc.).

I should note that this is all still under active development, so I'm not aware of any stable terminal plugins available to try just yet.

Here is the video covering it: https://www.youtube.com/watch?v=YDYTYktziyI

What do you all think? Anyone tempted to give it a spin once the ecosystem matures, or are we staying firmly comfy in our init.el?

u/amiorin — 4 days ago
▲ 32 r/emacs

ytm-radio is an Emacs-native YouTube Music player

Browse Home, Explore, Library, Search, playlists, albums, podcasts, and queue views inside Emacs; play audio through mpv/yt-dlp; control playback with transient menus; and use a short-lived Rust helper for authenticated YouTube Music features.

https://github.com/LuciusChen/ytm-radio

https://preview.redd.it/l0y6u31k5tah1.png?width=1544&format=png&auto=webp&s=407323804da02c867af0aaa866f2682d24b8a3d1

reddit.com
u/Lucius_Chan — 4 days ago