notes from /dev/null

by Charles Choi 최민수


30 Oct 2025

Announcing Casual Ediff

Truth be told, I find default Ediff to be weird and intimidating compared to other tools that do the same thing, which is to find differences between two files. Like other modes, Ediff is reliant on the user knowing beforehand its commands and respective keybindings, which means it has a steep learning curve. Many of these commands are context specific. While Ediff tries to be helpful by displaying a cheat sheet, I find this feature to be so information dense and context-free (in a bad way) that it usually results in upping my anxiety. I mean, look at this table!

That said, I’m not here to bury Ediff, but to praise it. Ediff is embarrassingly rich in functionality and time-tested. It just needs a better UI, which brings us to today’s post topic: Announcing Casual support for Ediff.

The approach Casual takes is to provide a Transient menu for the Ediff control panel, which is configured to be in the same frame as the windows holding the compared files. This menu organizes relevant commands in sections that map to the files being compared and does its best to be context-sensitive (e.g. determine if the buffer is writable or read-only, know if its a file comparision or a merge, etc.).

The result is an interface that is calmer to my eyes, as shown below.

Casual Ediff builds on the work described in my earlier blog post Using Ediff in 2023, in providing a streamlined way to diff a modified version-controlled file. This way, if you already have the file loaded in a window, you can call casual-ediff-revision to immediately see what changes you’ve made to it and to selectively be able to revert each change.

Casual Ediff also lets you resolve merge conflicts (typically from Magit). Added to Ediff is the ability to merge both conflicting differences in the order of choice by the user (the menu items “Merge A,B to C”, “Merge B,A to C”).

Read more about Casual Ediff at Ediff (Casual User Guide).

Casual Ediff is now available on MELPA as part of the v2.10.0 update for Casual.

It costs money to make, enhance, and maintain Casual as ideologically free software. If you enjoy using Casual, please consider a financial contribution to help support its development and maintenance. Thanks!

emacs

Past Articles

25
SEP
2025

Storing a Link from your Web Browser to BibTeX using Org protocol

Automate writing a BibTeX Online entry to Emacs from your web browser using Org protocol.

read more
24
SEP
2025

Announcing Casual BibTeX

Announcing Casual support for BibTeX, a bibilography database.

read more
8
SEP
2025

Announcing Numeri - an Emacs package for Roman number translation

Never not know what Super Bowl it is.

read more
24
AUG
2025

A proof of concept to put a better Emacs UI on top of Gnuplot

Where I demo a PoC of a Transient-based UI for Gnuplot and ask out loud, “should I go further?”

read more
12
AUG
2025

Fixing Emacs Page Navigation

Page navigation in Emacs only does half of what you expect. Here’s how to fix it.

read more
5
AUG
2025

Emacs Elevator Pitch: Nerd-kitch Merch

The first thing to do in software is make a T-shirt.

read more
29
JUL
2025

Unleashing the Editing Superpower of Emacs

At the end of the day, you just want to finish the job.

read more
28
JUL
2025

Announcing Casual Compile, Elisp, and Eshell

Casual v2.8.0 update is a big one. Compile, Elisp, Eshell and revamped documentation.

read more
18
JUL
2025

Customizing the Emacs Help Menu

If you’ve outgrown the Emacs Help menu, consider changing it.

read more

Page 1 / 16   >

 

AboutMastodonBlueskyGitHub

Feeds & Tags
Get Scrim for macOSGet Captee for macOS

Powered by Pelican