μProject: checkbox.el
I’ve been playing with Emacs in the evenings lately and writing a lot
of Elisp, and I just finished a little Emacs package for quickly
manipulating textual checkboxes ([ ]
/ [x]
, etc.) in buffers, like
a simple version of org-mode’s task manipulation, but available
everywhere. It’s called checkbox.el.
For example, if you have a simple to-do list in a Markdown file like this:
- [ ] Buy gin<point>
- [ ] Buy tonic
And you invoke checkbox-toggle
, you’ll get the following:
- [x] Buy gin<point>
- [ ] Buy tonic
Invoke it again and you’re back to the original unchecked version.
- [ ] Buy gin<point>
- [ ] Buy tonic
Next, if we add a line without a checkbox…
- [ ] Buy gin
- [ ] Buy tonic
- Buy limes<point>
We can invoke the command again to insert a new checkbox.
- [ ] Buy gin
- [ ] Buy tonic
- [ ] Buy limes<point>
checkbox.el
understands how to work with comments in programming
modes, tries to be smart about when and where it moves point (DWIM!),
allows for a fully custom set of “checkboxes” (e.g. TODO
, DONE
,
HOLD
), can remove checkboxes entirely with a universal argument
(C-u
), or directly select a particular checkbox state (rather than
cycling through them) when given a numeric prefix.
It also has a fairly extensive test suite leveraging ert, ecukes, and continuous integration via Travis CI. Check out checkbox.el on GitHub or install it via MELPA or Marmalade!