2026-06-15 Emacs news

| emacs, emacs-news

Lots of discussion around Karthik's latest blog post Even More Batteries Included with Emacs (Reddit, HN, lobste.rs). Check it out!

Links from reddit.com/r/emacs, r/orgmode, r/spacemacs, Mastodon #emacs, Bluesky #emacs, Hacker News, lobste.rs, programming.dev, lemmy.world, lemmy.ml, planet.emacslife.com, YouTube, the Emacs NEWS file, Emacs Calendar, and emacs-devel. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at sacha@sachachua.com. Thank you!

View Org source for this post

La semaine du 1 au 7 juin

| french

lundi le premier juin

Ma fille a séché les cours et elle n'a pas non plus voulu aller à son cours de gymnastique parce qu'elle a eu une mauvaise nuit et elle était toujours grincheuse.

Au lieu de la harceler, j'ai travaillé sur des transcriptions et sur mon bulletin d'information sur Emacs. J'ai écrit des fonctions pour comparer les mots et effacer les étendues qui correspondent avec les mots effacés.

Après avoir lu dans sa chambre pendant longtemps, elle a finalement réapparu de bonne humeur. Elle et moi avons préparé du sushi pour le dîner. Ensuite, nous avons joué au Scrabble dehors.

Elle a porté sa prothèse oculaire toute seule. Elle a dit qu'elle l'a fait pour elle-même. Je pense que l'autonomie est très importante pour ma fille.

Nous avons fait du vélo à la cour de récréation avec son amie, où nous avons rejoint d'autres amies. De temps en temps, ma fille était surstimulée. Quand ça arrivait, elle a joué au Scrabble avec moi et la nourrice de ses amies. Après qu'une de ses amies soit partie, nous sommes allées à l'autre cour de récréation pour jouer encore.

mardi 3

Ma fille a participé à l'école ce matin même s'il y avait un remplaçant, mais elle n'a pas voulu y participer l'après-midi. Nous sommes assises dehors et nous avons travaillé sur ses devoirs. Nous avons vu des pics.

J'ai emmené ma fille au parc pour jouer avec ses amis. Elle a aimé faire du vélo autour du parc avec ses amis et sans adultes. Ils ont aussi fait du vélo autour de la pataugeoire qui était sèche parce qu'elle n'était pas encore ouverte. Ils tournaient en rond.

J'ai fait l'erreur de jouer à mon jeu de Tileman Reworked près de ma fille. Elle a voulu m'aider, bien. Elle a recueilli les citrouilles et les canneberges, bien. Elle a commencé à couper l'herbe près des récoltes, euh… J'ai essayé d'expliquer qu'il ne fallait pas la couper, mais elle est devenue grincheuse parce que je la corrigeais. Elle m'a dit qu'elle voulait seulement m'aider et elle est partie furieuse. Ce n'est pas grave. Je pense que cette ferme est trop compliquée pour elle pour le moment. Notre ferme habituelle est meilleure. J'apprécie qu'elle ait voulu m'aider, et c'était juste un jeu. C'est aussi bien si elle apprend comment coopérer.

J'ai commencé à réécrire la transcription de la conversation entre ma sœur et notre cousine.

jeudi 4

J'ai discuté d'Emacs avec Ben Zanin. Il a partagé sa configuration sur elfeed, la musique, et d'autres sujets.

J'ai travaillé comme consultante. J'ai pris un cours de formation.

Ma fille et moi avons fait du vélo au parc. Nous avons joué à la pataugeoire et au bac à sable. Nous avons improvisé des histoires de Donjons et Dragons avec les dés sur mon smartphone.

J'ai discuté avec mes sœurs et quelques personnes des assurances-vie de ma mère. Notre accès au compte bancaire sera limité si ma sœur décède, donc il vaut mieux que nous fassions la paperasse maintenant.

vendredi 5

J'ai eu ma première session de la conversation avec mon tuteur aujourd'hui ! À mon grand étonnement, j'ai pu suivre assez de ses mots et j'ai pu expliquer mes pensées ( avec une mauvaise grammaire, bien sûr ). Je sais qu'il fallait que je m'entraîne à penser en français au lieu de traduire de l'anglais, donc davantage parler, davantage apprendre. C'est un exercice intense. J'avais transpiré. Nous avons réussi à parler de la programmation, des études à l'université, le travail, la vie, et d'autres sujets.

J'ai augmenté le stockage pour les vidéos de ma sœur.

J'ai signé la paperasse pour les assurances-vie.

J'ai appelé ma mère et je l'ai informée de la paperasse.

samedi 6

J'ai téléchargé encore d'autres vidéos de ma sœur.

Nous avons joué aux Donjons et Dragons avec ses tantes et ses cousines. Ma fille était la meneuse de jeu pour une partie de la session. Nous avons cherché une petite chèvre perdue, et nous avons combattu quatre bandits déguisés en gardes.

Nous avons fait des mochis.

J'ai payé la pénalité pour la soumission en retard du bilan de vérification du revenu étranger que je n'ai pas pu finir l'année précédente parce que le banquier était peu communicatif. Tant pis. Je pense que si ça arrive encore, je dois le soumettre avec ma meilleure estimation.

Dans mon jeu Tileman Reworked de Stardew Valley, j'ai finalement accédé à la boutique de Willy, le pêcheur. C'était le dernier jour d'automne de la quatrième année.

J'ai travaillé comme consultante. J'ai analysé des mises à jour.

dimanche 7

J'ai emmené ma fille chez le perceur pour examiner ses oreilles. Le perceur nous a dit qu'elle avait l'autorisation de changer pour de nouvelles boucles d'oreilles. Sur le chemin du retour, nous avons fait une promenade dans le parc.

J'ai emmené ma fille au Dufferin Mall pour sélectionner des boucles d'oreilles. Après quelques comparaisons, ma fille a opté pour des clous d'oreilles en acier plaqué or avec des pierres moyennes chez New Steel. C'était bon marché.

J'ai fini de coudre la robe de ma fille. Elle voulait me coudre une robe, donc j'ai préparé des pièces pour elle. Il vaut mieux que j'utilise beaucoup d'épingles et que je trace une ligne à la craie.

View Org source for this post

From DC Toedt: Copy Org Mode as Markdown

Posted: - Modified: | emacs, org

: Add embark way to do things.

DC Toedt is a lawyer and professor of practice who uses Emacs and Org Mode. He wanted a small Emacs Lisp function to convert Org Mode syntax to Markdown and copy it to the clipboard to make it easier to copy the materials he's writing for a course on contract drafting. This seems to be a common need, and here are several other approaches:

Anyway, DC shared how he used Claude to generate a simple function to do it, which is here under public domain:

(defun my/org-to-markdown-clipboard ()
  "Export org region (or buffer) to Markdown and copy to clipboard.
With no active region, exports the whole buffer."
  (interactive)
  (require 'ox-md)
  (let* ((text (if (use-region-p)
                   (buffer-substring-no-properties (region-beginning)
(region-end))
                 (buffer-substring-no-properties (point-min) (point-max))))
         (md (org-export-string-as text 'md t '(:with-toc nil
                                                :with-author nil
                                                :with-date nil
                                                :with-title nil))))
    (kill-new md)
    (message "Markdown copied (%d chars)" (length md))))
(with-eval-after-load 'org
  (define-key org-mode-map (kbd "C-c m") #'my/org-to-markdown-clipboard))
View Org source for this post

Yay Emacs 33: Sacha and Prot Talk Emacs: Built-ins

| emacs, yay-emacs

I chatted with Prot about the Emacs Carnival June 2026 topic Underappreciated Emacs Built-ins. Thanks to Ross A. Baker for hosting the carnival!

Working on the transcript…

Related links:

Rough notes

  • newcomers to intermediate users
  • develop intuition about what's out there, particularly for uncommon concepts
  • start with the problem, then talk about how things fit together at a high level
  • meta: deepening appreciation; high-level use
  • some ideas
    • focus and distraction
      • Org Mode or other note-taking / task management systems
      • kill-ring
      • registers (text, file) and keyboard macros
      • narrowing
      • indirect buffers
      • undoing in region
    • finding your way around
      • bookmarks
      • isearch (tip: add a counter), marks, also C-x C-x (exchange-point-and-mark) - lets you jump to the other part of the region
      • popping the mark
      • C-x C-x after pasting lets you select what you just pasted indent-rigidly C-x C-i
      • navigating by expressions/sentences/etc.
        • C-M-e
      • navigating errors
      • tags
      • imenu - try configuring it to flatten the list
      • projects
      • tabs, frames, rename-frame
    • discoverability
      • self-documentation
      • completion
      • manuals C-h R to find a manual, g to go to a chapter, i to index, m menu, s search
      • menus
    • automation
      • abbreviations, snippets
      • keyboard macros
    • stuff we didn't get to
      • regular expressions
      • repeat-complex-command
      • thinking in buffers
      • moving data around
        • Org Mode Babel
        • eshell
        • mail

Chat

  • protesilaos: ​Looking forward to this! Talk to you soon.
  • gr1maldi: ​​Yo, and stuff.🙂
  • charliemcmackin4859: ​​I just checked, there are 11 items in my kill-ring at the moment. Some of them are several lines long
  • charliemcmackin4859: ​narrowing to defun feels easier than trying to mark the function before search-and-replacing… I love narrowing
  • charliemcmackin4859: ​…and I love that you can make those marking tricks part of a keyboard macro
  • hmelman: ​​both local and global marks are useful to navigate through
  • pratikmishra4073: ​​just tried indirect buffer. didn't know it existed
  • hmelman: ​and the fact that things like xref or imenu push the last location before jumping, means popping the mark is an easy way to go back from various navigation mechanisms
  • matthewjorgensen9115: ​​thinking about isearrch wrap around search losing your place. either have scrroll to posisiotn to know the direction and how far it was away, or have mode line flash to say it moved from last to first
  • hmelman: ​Don't need flymake for that just M-g M-n (next-error) which works with compile, grep, occur (I think).
  • hmelman: ​One I keep forgetting about, you mentioned using sexp commands in other languages, works in prose too. C-M-u (backwards-up-list) moves you out of a "quote" or (paren) and then C-M-e to the end of it.
  • matthewjorgensen9115: ​​follow mode alllows the smae file with multiple frames, like a book. follow mode can work with 2 3 or more windows
  • matthewjorgensen9115: ​also works with centered cursor mode which will keep the cusor possion in the middle of the frame
  • RandCode: ​​Damn I am late, hello everyone! 🙂
  • matthewjorgensen9115: ​when highlighting parts of the manual how are you doing this? in bookmarks, bookmark region, using org-remark? other ways?
  • RandCode: ​​Does emacs have a grammar checker like harper's lsp?
  • greggr0th: ​​What are your favorite completion plugins?
  • RandCode: ​​Also, looking fresh Prot ;)
  • protesilaos: ​​Thanks!
  • hmelman: ​dabbrev is underrated. You don't need to pre-define them, just type the start of a word/symbol and type M-/ and it will search the buffer for something starting with what's left of point and expand it
  • RandCode: ​There is so much to learn that I feel like I have been missing out on all of emacs somehow lol
  • RandCode: ​Since you mentioned built-in completion framewworks, how does the built-in (vertical) completions compare to corfu btw?
  • charliemcmackin4859: ​not grammar, but if you have a dictionary server running (like dicod on linux) emacs can be made to communicate with it to give definitions at point
  • RandCode: ​Ohh, that is a cool! ^
  • matthewjorgensen9115: ​​virtico multiform mode allows custom settings command, for example for files I use grid and alphabetical, but vertico recommendations normally. This allows more value of completion knowledge
  • RandCode: ​Thank you so mcuh for this wonderful stream everyone!!!
View Org source for this post

2026-06-08 Emacs news

| emacs, emacs-news

It's Emacs Built-ins appreciation month! I'm coming to appreciate the menu bar more. What built-ins do you appreciate? Write about it and send Ross a link!

Links from reddit.com/r/emacs, r/orgmode, r/spacemacs, Mastodon #emacs, Bluesky #emacs, Hacker News, lobste.rs, programming.dev, lemmy.world, lemmy.ml, planet.emacslife.com, YouTube, the Emacs NEWS file, Emacs Calendar, and emacs-devel. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at sacha@sachachua.com. Thank you!

View Org source for this post

June 18: Emacs Chat with Ross A. Baker

| emacs, emacs-chat-podcast, emacs-chat

On June 18, I'll chat with Ross Baker about Emacs and life.

America/Toronto = Thu Jun 18 1030H EDT / 0930H CDT / 0830H MDT / 0730H PDT / 1430H UTC / 1630H CEST / 1730H EEST / 2000H IST / 2230H +08 / 2330H JST

This session will be recorded, and I'll update this blog post with notes. https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/

Find more Emacs Chats or join the fun: https://sachachua.com/emacs-chat

View Org source for this post

Emacs PDF View: Replace current page with file using PDFtk

| emacs

I needed to replace a page in a PDF with another PDF. This was a bit of an annoying process on my iPad involving copying and pasting pages in Noteful and then re-exporting them as a PDF, but it was easy to do in Emacs thanks to pdf-tools and PDFtk.

;;;###autoload
(defun sacha-pdf-view-replace-current-page-with-file (file)
  "Replace the current page in PDF View with FILE.
Requires pdftk."
  (interactive "FFile to insert: ")
  (let ((temp-file (concat (make-temp-name "pdf-view") ".pdf")))
    (call-process
     "pdftk"
     nil nil nil
     (concat "A=" (expand-file-name (buffer-file-name)))
     (concat "B=" (expand-file-name file))
     "cat"
     (format "A%d-%d"
             1
             (1- (pdf-view-current-page)))
     "B"
     (format "A%d-end"
             (1+ (pdf-view-current-page)))
     "output"
     temp-file)
    (rename-file temp-file (buffer-file-name) t)))
This is part of my Emacs configuration.
View Org source for this post