notes from /dev/null

by Charles Choi 최민수


Announcing Casual Compile, Elisp, and Eshell

28 Jul 2025  Charles Choi

Another update to Casual has been recently made (v2.8.0) which adds two new interfaces:

  • Compile for compilation-mode and grep-mode.

  • Elisp for emacs-lisp-mode.

Belatedly, this post also announces an interface for Eshell which was released in v2.7.0 without much fanfare. We’ll remedy this here.

The v2.8.0 update also does an overhaul of the documentation for Casual, emphasizing the usage of Texinfo (by way of Org) to author it. A benefit for doing so is the ability to export its output to both Info and HTML.

Casual Compile

A common workflow is to use the compile command to run a command line tool, typically make (see also Casual User Guide (make)). If errors occur, then they are listed in a buffer named ✳︎compilation✳︎ which can be navigated upon. The major mode of this buffer is compilation-mode and it offers two ways to navigate this list:

  • Moving the current selection while simultaneously showing the selected error at its source in another window (aka “following” the selection.)
  • Moving the current selection only.

By default, the keymap compilation-mode-map binds a number of its commands to use a modifier key (M- or C-) which is too much work for my taste. I prefer a single key binding when possible, so have made the following changes for Casual Compile:

Default Binding Casual Binding Command Note
M-p k compilation-previous-error Use vi convention.
M-n j compilation-next-error Use vi convention.
M-{ [ compilation-previous-file Single key on en keyboard.
M-} ] compilation-next-file Single key on en keyboard.
C-o o compilation-display-error Single key on en keyboard.

The menu for Casual Compile (casual-compile-tmenu) is shown below:

img

This same menu also applies to Grep results when called from Emacs. This is because Grep output uses a major mode (grep-mode) that is derived from compilation-mode.

Learn more about Casual Compile in the Casual User Guide (Compile).

Casual Elisp

While I’ve been an Emacs user for decades, I’ve only been writing Emacs Lisp (Elisp) for about a year and half now. The menu I’ve created for Elisp is largely a collection of commands that I’ve found useful to have around when developing for it.

img

This includes functions for evaluation, cross-referencing, byte-compiling, and balanced expression (sexp) navigation.

Learn more about Casual Elisp in the Casual User Guide (Elisp).

Casual Eshell

Eshell has a number of commands to help save you from typing too much. Probably my most favorite command is eshell-insert-buffer-name which will let you choose a buffer via completion. This command is mapped to the binding B in casual-eshell-tmenu.

img

Learn more about Casual Eshell in the Casual User Guide (Eshell).

Casual User Guide

The User Guide for Casual has been revamped in v2.8.0. Notable features include:

  • Menu screenshots are now included in the Info file. They can be seen in the Emacs Info reader.
  • The HTML generated from the same source as the Info file is now published at https://kickingvegas.github.io/casual.
    • Supports appearance changes (light/dark mode).
    • Responsive for both mobile and desktop screens.

Closing Thoughts

Casual v2.8.0 was a big push, particularly with regards to the documentation. Please provide any feedback on any of the new features in the discussions section for it.

If you enjoy using Casual, please consider making a modest financial contribution to help support its development and maintenance. Thanks!

https://www.buymeacoffee.com/kickingvegas

emacs

 

AboutMastodonBlueskyGitHub

Feeds & Tags
Get Scrim for macOSGet Captee for macOS

Powered by Pelican