r/emacs • • 8d ago

Fortnightly Tips, Tricks, and Questions — 2026-10-20 / week 42

13 Upvotes

This is a thread for smaller, miscellaneous items that might not warrant a full post on their own.

The default sort is new to ensure that new items get attention.

If something gets upvoted and discussed a lot, consider following up with a post!

Search for previous "Tips, Tricks" Threads.

Fortnightly means once every two weeks. We will continue to monitor the mass of confusion resulting from dark corners of English.


r/emacs • • 5h ago

Emacs turns 50

Post image
294 Upvotes

r/emacs • • 7h ago

Announcement GNU Hyperbole Release 9.3.2 is available

33 Upvotes

Hyperbole is a broad information management framework that augments your favorite Emacs libraries like Org and Consult. It can accelerate the things you do everyday with Emacs, just give it a chance. It installs in about 60 seconds. Learn about it from:

- Hyperbole Manual

- Hyperbole Articles

- Hyperbole Videos

Hyperbole version 9.3.2 is another jump in capability with Org visibility cycling added to the Koutliner and the ability to use the double brackets of Org link format around Hyperbole implicit buttons in Org mode.

Below are major updates since release 9.1.0:

\* The Koutliner - legal-style outliner with permalinks and hidden properties

** Org-style Visibility Cycling

New, extensive key compatibility with Org-mode; major Org keys work similarly. {TAB} and {S-TAB} (previously {M-TAB}) keys cycle trees and entire outline visibility anywhere in a cell, by default. Use {C-c [} to toggle these keys between cycling and tree demotion/promotion, as desired. Bindings of {C-c C->} or {M-right} and {C-c C-<} or {M-left} for tree demotion/promotion always work regardless of the tab mode.

The Koutliner has the same kind of extensive user-customizations of tab behavior as Org mode.

** Inline Image Display

{C-c C-x C-v} toggles the inline display of image files in Koutlines, just like Org mode.

** Free Up User-customizable {C-c <letter>} Keys

Previously, the Koutliner bound a number of these keys for convenience. Now they are all replaced with {C-c ; <letter>} so global user set {C-c <letter>} keys are available. If you don't use such global keys, {M-1 C-c C-l} will enable the original Koutliner

{C-c <letter>} key bindings while leaving the {C-c ; <letter>} keys in place as well.

** kotl-mode:action-key-default-function

This new setting holds a function run by the Action Key in Koutline mode (kotl-mode) when no other context matches. The default setting does nothing within cells, whereas previously, it would toggle between showing and hiding the tree (this is now done with {TAB}).

Set this to `kotl-mode:show-or-hide-tree' to restore the old Koutliner behavior.

** kotl-mode:assist-key-default-function

This similar setting is for the Assist Key in Koutline mode when no other context matches. The default setting does nothing within cells whereas previously it would run `smart-scroll-down' to scroll down a screenful.

Set the variable to that command if you prefer the prior behavior.

** Improve copy-tree Mnemonics

- {C-c ; b} `kotl-mode:toggle-blank-lines' has moved to {C-c ]}.

- {C-c C-c} `kotl-mode:copy-before' has moved to {C-c ; b} to match with {C-c ; c} `kotl-mode:copy-after' binding.

\* Hyperbole Org Mode Support

** Hyperbole Buttons as Org Links

Hyperbole buttons wrapped in double square bracket org link delimiters when in Org mode will activate properly with the addition of a single line to your Hyperbole `use-package' configuration:

(push #'hyperbole-activate-button org-open-link-functions)

Then you get all the Hyperbole button capabilities with the highlighting and the activation of Org links via {C-c C-o}. Of course, the Action Key will activate these buttons as well.

Since Emacs Lisp symbols are Hyperbole buttons, you can make links to both function and variable definitons just by wrapping their names in Org delimiters. For example, [[find-file]] or [[hsys-org-enable-smart-keys]].

** Org Heading Smart Key Settings

Two new settings to control Action and Assist Key behavior when within an Org mode heading when `hsys-org-enable-smart-keys' is set to t (defaults are no-ops):

`smart-org-action-key-heading-function' and `smart-org-assist-key-heading-function'.

The new `smart-org-cycle' command is one option for such a setting.

\* HyWiki - the no markup, personal Wiki note taker

** HyWikiWord#Headline Links to Indented Headlines

HyWikiWord#Headline links now work in Wiki pages that use indentation before the * delimiters of headlines.

** Disable Action Key HyWikiWord Creation

You can now customize which modes prevent HyWikiWord creation with the Action Key {M-RET} Add any text or programming major modes to

`hywiki-word-create-exclude-action-key-modes' to disable this feature in these modes. You can bypass this setting by creating a HyWikiWord via the keyboard menus with {C-h h h c}.

** Orderless Matching in Searches

When using the `orderless' package in searches, multiple space-separated words are matched in any order they occur, regardless of the order given to the search.

\* HyRolo - the fast, hierarchical record retriever

** Yank Entire Record Trees

By default, {C-h h r y} `hyrolo-yank' yanks at point the entry matched without any of its sub-entries. Use {C-u C-h h r y} to yank in the entire tree.

** Orderless Matching in Searches

When using the `orderless' package in searches, multiple space-separated words are matched in any order they occur, regardless of the order given to the search.

* Documentation

** "FAST-DEMO" {C-h h d d} now includes links to articles about

Hyperbole, including two new articles and videos:

HyRolo: Records are Trees, Not Lines - https://youtu.be/5Oo_KqVcLFM

Implicit Buttons: Build Your Hyperverse - https://youtu.be/o2KMvSCXwlU

\* Installation

** New Install Documentation

Installation sections in the Hyperbole Manual and "README.md" have been extensively rewritten. Installation now utilizes `use-package' with a fully documented reference `man/use-package' configuration file you can easily customize. The file, "INSTALL", has been deleted.

** Key Use-Package Settings

Some key configuration settings in the "man/use-package" file:

- `iimage-mode' setting that permanently enables inline image display in Koutline buffers.

- `hyrolo-file-list' setting that shows all of the note taking systems that can be quickly full-text searched with HyRolo with no indexing.

- The new `hywiki-word-create-exclude-action-key-modes' list lets you exclude certain major-modes from having the Action Key create new HyWiki words when pressed on any capitalized word.

- A one line setting of `org-open-link-functions' enables highlighting Hyperbole buttons as Org links when wrapped in double square brackets. Now you can make all your Hyperbole buttons operate like Org links if desired.

* Further Details

See HY-NEWS.html for detailed changes in the Version 9 Hyperbole series.

-- The End --


r/emacs • • 12h ago

emacs-fu Better lisp editing with `tree-guide.el` (and other packages)

Enable HLS to view with audio, or disable this notification

44 Upvotes

Hello Emacs friends,

I'd like to share the tree-guide.el package I've been working on.

tree-guide-mode is a local minor mode that adds visual guides to lisp source code buffers, which make it easier to read/edit lisp code. The guides update in real time as you edit.

FYI, this package does not contain any LLM-generated code!

GitHub repo: https://github.com/benvvalk/tree-guide.el

Full demo video + lisp editing tutorial (~ 30 mins)

YouTube link: https://www.youtube.com/watch?v=5qgXUH5pHOk

Video outline:

Part 1 (0:00 - 3:45): tree-guide-mode demo and commentary

Part 2 (3:45 - 26:15): beginner lisp editing tutorial, featuring:

  • aggressive-indent for automatic indentation
  • tree-guide for visual guides
  • show-paren for highlighting current lisp expression
  • lispy for structural navigation/editing
  • hideshow-org for folding lisp expressions

Part 3 (26:15 - 28:52): some ideas I'm trying to fund my open source work:

Footnotes:

[1]: HackerNews post about "sponsorware": https://news.ycombinator.com/item?id=23613719


r/emacs • • 3h ago

emacs-fu meeting-mode: Highlight the what's in focus during screen sharing

Thumbnail github.com
8 Upvotes

r/emacs • • 16m ago

How are you maximizing Vterm in your Emacs workflow?

• Upvotes

I'm trying to make Doom Emacs my primary environment for development, Org-mode, and everyday terminal work, while keeping WezTerm for demanding TUIs and graphics.

For those who use Vterm heavily, what are your best tips for improving performance, handling keybindings (especially with Evil), managing sessions, and integrating it with the rest of Emacs?

Any must-have packages, configurations, or workflows you'd recommend?


r/emacs • • 7h ago

From Lisp to Lisp

Thumbnail
4 Upvotes

r/emacs • • 8h ago

Question How to get indentation to work correctly within emacs?

4 Upvotes

I edit files from many projects, and once I open a buffer I'd prefer my global settings over-written and the correct settings inherited for indent-tab-mode and tab-width. Global settings just don't cut it, and I don't know if electric-tabs-mode can work with local settings. I'm new to emacs, so I'm kinda stuck


r/emacs • • 15h ago

mu4e 1.14.4 and HTML email behavior seems odd

5 Upvotes

I can't really tell if this is a bug, new behavior, or a case of PEBKAC, but when I updated to mu4e 1.14.4, it appears that (1) I'm not seeing images in email that I used to in either the shr-powered or the xwidget-powered view, e.g., the xview in xwidget action or even the view in browser action; and (2) I could swear that pressing the space bar used to scroll through a displayed messsage in the xwidget, but now it doesn't.

This doesn't seem to be a change anywhere else on my end: if I use view in browser and right-click on an image placeholder to select "open image in new tab," the image loads, and xwidget-webkit-browse-url works and loads images correctly.

Am I crazy? Did this never load images and it's just a fever dream? Did space bar never work?

I'm on macOS 27.0.1 and Emacs 30.2 (the jimeh build). (And both gnus-blocked-images and gnus-inhibit-images are nil.)


r/emacs • • 19h ago

(update) Supertag 0.4.0: lifestreams-style stream-agent, summary

Thumbnail youtube.com
8 Upvotes

I've been working on Supertag, a package that treats tagged Org headings as typed nodes (tags with fields, queries, backlinks, streams). 0.4.0 adds the piece I've wanted for a while, and I made a short video about the idea behind it.

The problem I kept hitting. Asking an LLM to make small edits to my notes ("I talked to X today, log it") works most of the time. Only most of the time, so I end up opening the note to check, almost every time. Checking costs about as much as doing it by hand.

What 0.4.0 does instead. You open a tag's Stream (a time-ordered list of its nodes) and describe in one sentence how it should work, e.g. "group people by how close we are, and give me a key to log that we talked today."* A model writes a small Elisp agent for that Stream: groups, a line per note, and keys that write properties. After that the agent runs with no model call. Pressing the key writes :LAST_CONTACT: 2026-10-26 into the property drawer, as plain text. R revises the agent with another sentence.

Some boundaries I care about, which I suspect this sub does too:

  • The Org files are the only truth. The Stream is a view. Agents never create notes; they only read and write declared properties (and SCHEDULED/DEADLINE if you ask for dates). Delete an agent and nothing in your files changes.

  • The model only runs when you ask: when designing or revising an agent. Nothing calls a model in the background.

  • Generated code is checked before install. It is built from a fixed set of primitives; every field an action writes has to be declared; the view must place every note in a group, draw a single-note stream, and redraw after each action. Failures go back to the model, up to a limit. You can read the code with C; the sentence and its revisions are kept as comments.

  • Bring your own model. Requests go through gptel (with a supertag preset) or Superchat. Local models via Ollama / LM Studio work.

The idea is borrowed from Lifestreams (Eric Freeman's 1997 Yale thesis): one stream of everything, substreams by query, and processors on top. Its processors had to be written by hand (a phone-call agent took ~150 lines of Tcl), which is why they never spread. An LLM can be that author, once.

Also in 0.4.0:

  • M-x supertag-view-stream opens one stream of all nodes; f narrows with plain words, tag:prj, KEY:VALUE or a full query; u goes back.

  • Discovery adds results by meaning after keyword matches (embeddings via Ollama or any OpenAI-compatible endpoint; off by default).

  • Agents can indent tasks under their project, using the outline path.

  • Archived notes (ARCHIVE tag, org-archive-location, denote archive keyword) are hidden from streams; A shows them.

  • denote #+IDENTIFIER: and :ID: file headers are file nodes by default. Repo: https://github.com/yibie/supertag

Release notes: https://github.com/yibie/supertag/releases/tag/v0.4.0


r/emacs • • 22h ago

Question What to set completion-at-point-functions to?

8 Upvotes

Currently I have this as a general setup:

(setopt completion-at-point-functions (list (cape-capf-super #'cape-keyword #'cape-file #'cape-dabbrev)))

and this as a setup for eglot-enabled buffers:

(setq-local completion-at-point-functions (list (cape-capf-super #'eglot-completion-at-point #'cape-keyword #'cape-file #'cape-line #'cape-dict)))

According to what I could find, the capf variable is supposed to be a list in order of completion priority, but setting it to anything except a singular capf (either normally or via cape-capf-super) either breaks completion-preview completely or at least breaks the overlay part of it. Is there a better way of doing any of this? I was specifically looking to have completion for LaTeX commands via AUCTeX but I couldn't get it working consistently.


r/emacs • • 1d ago

Emacs and its many (inter)faces

Thumbnail pranta.re
24 Upvotes

r/emacs • • 1d ago

Emacs vs Neovim - Why Prot Won't Pick a Side

Thumbnail youtu.be
42 Upvotes
UPDATE:
fixed chapters to give a better idea of the topics
Added youtube video description as some sort of a TLDW

Good day emacs gang! I bring you a video of one of the Emacs Messiahs.

I had Protesilaos on Root Access, my members' podcast, with a couple of my members, Rumen and Ted. Rumen recently switched to Emacs full time, so this one leans heavily Emacs even though I'm a Neovim guy.

Some of what we talked about (chapters):
00:00 Highlights
01:17 Why Prot joins Root Access to balance out Neovim
07:37 Can you live off Emacs coaching? Prot on austerity
12:52 From a rented donkey stable to building Prot's own hut
18:50 Why everyone wants to move to Cyprus
24:36 Emacs 31 newcomers presets and how Emacs development works
31:12 Prot on the anti-AI Emacs manifesto and community politics
36:15 Prot on AI: programming is fun, but the market decides
42:03 Rumen learning Emacs with AI and Prot's coaching
48:07 Rumen's plan for a NixOS and Emacs centric machine
53:01 Techieman's Emacs journey on pause due to workload
59:42 Why Prot skips Hyprland: bling is an anti-feature
1:03:55 Omarchy, DHH and separating the work from the author
1:10:56 Sessions with Prot and sponsoring open source maintainers
1:16:19 Real Emacs on Android via F-Droid and iSH on iPhone
1:20:10 Why linkarzu won't switch back to Emacs yet
1:26:33 The spirit of Emacs is integration, not the software

It's the full conversation with chapters, about 90 minutes:
https://youtu.be/dQ6X0-XCLIw

Happy to hear what you think, especially from those of you who've gone back and forth between Emacs and Neovim.

YouTube video description:
After all my Neovim talk, Rumen brought Protesilaos (Prot) onto Root Access to balance things out, and Ted joined us too. Rumen shares that he converted to Emacs full time, is building a NixOS flavor, runs his tasks in Org mode, and is working on a small database server so the notes he dictates on his phone sync to Emacs on his desktop and laptop. We also get into the anti-AI "Human Emacs" fork idea, and Prot explains why Emacs already refuses LLM-generated contributions over copyright and GPL licensing concerns, and how maintainers spot suspicious patches. Prot says he doesn't use AI because programming is basically his video game, but he admits the technology case is undeniable and frames the AI bubble as a capital realignment like the dot-com crash.

We also talk about how Cyprus and Greece export tourism and land, and the gold rush mentality that comes with it, and I ask Prot about Cypriot olive oil for my wife. Then it's Niri and scrolling window managers versus i3/Sway-style control, Emacs workspaces replacing tmux, and DHH's Omarchy, where Prot argues software should be judged on its merits and not its author, and explains why he refuses to remove a Modus theme port for Omarchy. I show Hazenbug's org mode plugin for Neovim, Prot explains why org is portable plain-text markup, and I explain why I'm not switching back to Emacs yet - I'm not on the Neovim team or the Emacs team, and editor choice shouldn't be treated like soccer or religion. If you care about Emacs, Neovim, free software, or how AI fits into all of it, this one is for you.


r/emacs • • 1d ago

DOrg 0.2: a structured query-and-edit API for your Org data plane, from Elisp or the CLI

Enable HLS to view with audio, or disable this notification

4 Upvotes

I've released DOrg 0.2: an Elisp library and a command-line tool that treat your Org files as a data plane. Your headings, properties, planning and body text surfaced as structured data that Emacs, scripts, and agents query and edit through one API.

DOrg supports plain Org, where your file stays the source of truth and edits preserve untouched bytes. You can also use Dolt, a versioned SQL database, to hold state and history. Emacs displays an Org view.

New in 0.2:

  • More plain-Org edits: heading fields, properties, planning and heading capture.
  • Explicit case-sensitive/insensitive matching and opt-in BM25 search in Dolt.
  • Persisted clocks, with an optional Emacs adapter.
  • A self-contained installation that doesn't depend on the development checkout.

r/emacs • • 2d ago

Orgzly-revived vs Orgzly-native: Can you guess which one of these is written entirely in Elisp?

Enable HLS to view with audio, or disable this notification

42 Upvotes

Both apps are running side by side on a Pixel Tablet in split screen.

On some taps one side responds about 0.1–0.5 s later than the other, most visibly when opening a note.

B (right) is Emacs Lisp. It runs in GNU Emacs 31 for Android on the tablet itself, with no desktop and no network. The Orgzly screens, menus, dialogs and the Org file editing are an Elisp applet. It describes each screen as JSON and sends it over a local socket to Jetpacs, a generic Jetpack Compose renderer. Very similar to how Google's A2UI protocol works. The renderer contains no Orgzly-specific code. The date, time and repeat pickers are Android's own widgets on both sides; the Elisp side asks the renderer for them.

The lag is the Elisp → renderer round trip. Raising Android Emacs's gc-cons-threshold from the default 800 KB to 64 MB and byte-compiling the Elisp cut a screen update from about 490 ms to about 28 ms on the tablet. It will always be slower because it always requires a round trip to Emacs for any application logic.

https://github.com/calebc42/orgzly-native


r/emacs • • 2d ago

region-cursors - Cursor overlays at both ends of the region

Post image
60 Upvotes

region-cursors is a minor mode that adds cursor-like overlays at both the point and mark when a region is active.

On MELPA and MELPA Stable. Feedback and PRs welcome!


r/emacs • • 1d ago

Seeking testers for an android app: Linen (plain text notes)

Enable HLS to view with audio, or disable this notification

0 Upvotes

Hello emacs people. I've kept my notes in org mode in Emacs for over a decade, but reading them or making small edits on my phone has always felt clunky. So over the last year I built an Android app to fix that. I have been using it daily and adding features and fixing bugs for almost a year now. I'm biased, of course, but I find it a pleasure to use. (It handles markdown and plain text too.)

I posted an early version here once before. Since then I've made a lot of bug fixes and added features.

I won't give my spiel here and will let the video do the talking, but I'll be watching the comments and happy to answer questions.

If this looks useful to you, see my comment below to join the beta. I'd love to reach the tester threshold so I can publish it on the Play Store.

Scott


r/emacs • • 2d ago

Trying to make flymake on elisp buffers non intrusive

Post image
9 Upvotes

I've started running flymake on elisp files like init.el which gives me an easy way to find stray typos that I tend to leave around quickly.

The big issue with doing so is you need to make the whole file clean with respect to its usage of external functions and variables in other packages.

For me that was a huge block of declare-function, defvar statements.

For now I stuck them in a separate file and have a small macro to pull them in when compiling

(eval-and-compile
  (defmacro my-include-declarations ()
    "Expand to the forms in lisp/compile-declarations.el, or nil when not compiling."
    (when (bound-and-true-p byte-compile-current-file)
      (let ((file (expand-file-name "lisp/compile-declarations.el" user-emacs-directory))
            forms)
        (with-temp-buffer
          (insert-file-contents file)
          (goto-char (point-min))
          (condition-case nil
              (while t (push (read (current-buffer)) forms))
            (end-of-file nil)))
        `(progn ,@(nreverse forms))))))
(my-include-declarations)

I'm curious if anyone has a cleaner solution to this type issue where less predeclarations are needed optimally.

*More context: I'm also using elpaca.


r/emacs • • 3d ago

Question Problems with v31 on M5 Mac (27.2). Help!

18 Upvotes

Hi all!

I've been using emacsforosx builds for years since I have been using emacs for almost everything since 1987 but I'm not a programmer or systems guy (ASIC design mostly using SystemVerilog, Python, MATLAB, and BASH).  I've built emacs from scratch a couple of times but when I start getting library errors I quickly get in over my head!

I just got a new M5 Macbook Pro (running 27.2 beta 3) and went to install the latest emacs 31 and my init.el blew up.  Doing some web searches, it looks like all the elc/native-compile broke. This makes sense since it's an ARM and I probably last compiled for x64.  So, I deleted my eln- directory to rebuild everything.  I'm sure you know what happened next.  A ton of elisp errors and warning including this in *Native-compile-log*

Compiling /Users/david/.emacs.d/eln-cache/31_1-032f33bc/subr--trampoline-72656e616d652d627566666572_rename_buffer_0.eln...
clang: error: invalid version number in '-mmacosx-version-min=18.0'
libgccjit.so: error: error invoking gcc driver

debug-early-backtrace...done
Internal native compiler error: "failed to compile", "/Users/david/.emacs.d/eln-cache/31_1-032f33bc/subr--trampoline-72656e616d652d627566666572_rename_buffer_0.eln", "error invoking gcc driver"

Error: native-ice ("failed to compile" "/Users/david/.emacs.d/eln-cache/31_1-032f33bc/subr--trampoline-72656e616d652d627566666572_rename_buffer_0.eln" "error invoking gcc driver")
  comp--compile-ctxt-to-file0("/Users/david/.emacs.d/eln-cache/31_1-032f33bc/subr--trampoline-72656e616d652d627566666572_rename_buffer_0.eln")
  comp--compile-ctxt-to-file("/Users/david/.emacs.d/eln-cache/31_1-032f33bc/subr--trampoline-72656e616d652d627566666572_rename_buffer_0.eln")
  comp--final1()
  load-with-code-conversion("/private/var/folders/s5/zfnmhf0n5dzb3_7k13w83pc00000gn/T/emacs-int-comp-subr--trampoline-72656e616d652d627566666572_rename_buffer_0-Za7a4a.el" "/private/var/folders/s5/zfnmhf0n5dzb3_7k13w83pc00000gn/T/emacs-int-comp-subr--trampoline-72656e616d652d627566666572_rename_buffer_0-Za7a4a.el" nil t)
  command-line-1(("-l" "/var/folders/s5/zfnmhf0n5dzb3_7k13w83pc00000gn/T/emacs-int-comp-subr--trampoline-72656e616d652d627566666572_rename_buffer_0-Za7a4a.el"))
  command-line()
  normal-top-level()

I should mention that I have OSX set to bash instead of the default zshell since that's what I'm used to from Linux.  

So, I started looking at my Homebrew and realized that was also all x64 so I totally uninstalled and re-installed it and did brew install gcc and libgccjit.  I found this info online. I guess a lot of people hit this in emacs 31!

(defun setup-macos-native-comp-library-paths () "Set up LIBRARY_PATH for native compilation on macOS." (setenv "LIBRARY_PATH" "/usr/local/Cellar/gcc/15.2.0:/usr/local/Cellar/libgccjit/15.2.0/lib/gcc/current/:/usr/local/Cellar/gcc/15.2.0/lib/gcc/current/gcc/x86_64-apple-darwin24/15"))
(setup-macos-native-comp-library-paths)

I did this, changing /usr/local to /opt/homebrew and version 15 to 16, which is what brew installed. I added this to the head of my init.el and restarted emacs but it didn't seem to help. I'm now getting beyond my knowledge and not sure what I'm doing or how to troubleshoot. And even after all of this, I'm sure going from emacs 30 to 31 is going to break a bunch of my init.el and packages. I just want to edit some files!

Any ideas? I see recommendations for brew/emacsplus. Should I switch to that?

Thanks much!


r/emacs • • 3d ago

How to colorize paths displayed by Veritco (e.g. from Consult)?

9 Upvotes

How to colorize/format paths displayed by Veritco (e.g. from Consult) to make them visually easier to read? I add a custom source to consult-buffer to include Emacs config and org files:

(defvar my/conf_and_org_files_source
  `(:name "Emacs config + Org files"
          :narrow   ?d
          :category file
          :face     consult-file
          :state    consult--file-state
          :items    (lambda () (let* ((base-dir user-emacs-directory)
                                      (elisp-dir (expand-file-name "elisp" base-dir))
                                      (el-regexp "\\.el\\'")
                                      (files nil))
                                 (setq files (directory-files base-dir t el-regexp t))
                                 (setq files (append files (directory-files-recursively elisp-dir el-regexp)))
                                 (setq files (append files (org-agenda-files)))))))

(with-eval-after-load 'consult
  (add-to-list 'consult-buffer-sources 'my/conf_and_org_files_source 'append))

The results are e.g.:

/home/user/.config/emacs/custom.el
/home/user/.config/emacs/early-init.el
/home/user/docs/notes/todo.org
/home/user/docs/notes/archive/todo.org

I would like to e.g. use ~ instead of /home/user, highlight / path separators, different colors between the basename of the file and the rest of the path, and maybe even shorten like ~/.c/e/custom.el. Or show the basename first, e.g. custom.el ~/.config/emacs (with column alignment)--this would be preferable for my set of files. As-is, it's not so easy to read, especially if files are deeply nested and all over the filesystem.

Any examples are much appreciated, not a programmer (also feel free to suggest refactoring the above like avoiding multiple variable assignments).


r/emacs • • 3d ago

why emacs and org-mode are fantastic

Thumbnail
22 Upvotes

r/emacs • • 3d ago

Question How to handle many large buffers?

6 Upvotes

As Emacs does more and more duty as a front-end for various agent interactions, I am dealing with more and more large buffers. For instance, long conversations via gptel or the Hermes Agent (name: hermes) on Non GNU Elpa. Particularly for Hermes Agent where I might have dozens of open sessions on various topics and each of them could run over the course of many days. I'm noticing some slow downs on a pretty beefy workstation regardless of CPU or memory.

I suspect that folks who do things like read email or do instant messaging in Emacs might run into similar?

For anyone doing any of the above, how are you dealing with very large buffers? I have a dozen that are nearly 10k lines.

Perhaps newer versions of Emacs will move toward not keeping the entire buffer in memory at all times? I believe I have read that that has been the model for a long time.


r/emacs • • 3d ago

Question Is there a built-in way to evaluate arithmetic expressions in prose?

11 Upvotes

Yo! I spend a lot of time in Org mode and often want to do quick and simple calculations directly in prose. Org tables are overkill for simple stuff. For example, I'd like to turn this:

The overall costs were 300 + 400.

into this:

The overall costs were 300 + 400 = 800.

Ideally, I'd place point somewhere in the expression and invoke a command that evaluates it and inserts the result. Is there an existing built-in solution, or is a custom function the usual approach?


r/emacs • • 4d ago

welkomscherm v1.2.1: a small, calm, extensible dashboard for Emacs

Thumbnail gallery
113 Upvotes

welkomscherm.el: a configurable list of thunk handful of lines, the links you actually use, and nothing that gets in your way, but extensible enough for you.

Source: https://codeberg.org/jjba23/welkomscherm.el

It works well in graphical frames and in CLI too on any Emacs >= 25.1

  (setopt welkomscherm/sections
          (list welkomscherm/top-title
                ;; A section of your own, built as a record.
                (welkomscherm/make-section
                 :name "Today"
                 :condition (lambda () (bound-and-true-p org-agenda-files))
                 :render (lambda () (welkomscherm/insert-muted "Make it a good one.")))
                ;; Or just a bare function.
                (lambda () (welkomscherm/insert-muted "and a warm cup of coffee"))
                welkomscherm/bookmarks
                welkomscherm/actions))

r/emacs • • 4d ago

emacs-fu Writing an mTLS server in Go using Emacs

13 Upvotes

Hi, I've recorded a video on mTLS, in which I write an mTLS server in Go using Emacs. The Emacs bit starts 10:18 into the video and runs for about 14 minutes.

You can see Emacs delivering an excellent coding experience, using eglot and gopls:

  • code completion
  • code actions
  • code navigation
  • linting
  • documentation lookup
  • running commands from inside Emacs
  • version control with Git using Magit
  • running a terminal inside of Emacs

I hope it might be of interest to some of you.

mtls #tls #security #golang #emacs