Failed to load latest commit information.
alert @ 206d709 Update submodules Nov 14, 2017
async @ 424ecd8 More renaming Jan 16, 2018
chess @ 372309e Start using emacs-chess Apr 15, 2017
emacs-edg Merge commit 'bc531a21d2f6ba68ecfdb1d2358c46958290bc5d' as 'lisp/emac… Mar 13, 2015
emacs-pl @ 4e2c435 changes Mar 24, 2015
erc-yank @ d4dfcf3 Update erc-yank Jan 23, 2017
git-annex @ 22b7161 Update git-annex Jan 16, 2018
git-undo @ 852824a More renaming Jan 16, 2018
gnus-harvest Merge commit 'c3d9d31647cb225881b244a16306a8e7fa3069c7' Nov 25, 2017
haskell-config @ 211c0f3 changes Dec 19, 2017
initsplit @ e488e8f Update lisp/initsplit Mar 22, 2015
muse Merge commit 'c4f9fe6cf4579e441e0b2c042c84e1c5df8b87a1' as 'lisp/muse' Mar 13, 2015
nix-update @ 76eb2e0 Minor changes Feb 5, 2018
regex-tool Merge commit '61c40d4c74a74c943bc36f84d113f5adfff4d3b6' Nov 25, 2017
springboard Merge commit 'ced11cd4287827349b6b8caade9d1c946c0b8bae' Nov 25, 2017
use-package @ a77113f Changes Jan 27, 2018 Update lisp/ Aug 29, 2011
c-includes.el Extensive reorganization Aug 23, 2011
cl-info.el changes Dec 10, 2017
coq-lookup.el Add coq-lookup Jan 31, 2018
delimit.el changes Dec 19, 2017
ediff-keep.el Fix ediff-keep.el Jul 17, 2012
edit-rectangle.el Some cleanup, split out edit-rectangle.el Nov 18, 2017
erc-alert.el Don't do ERC fringe alerts if I'm in the buffer Mar 16, 2015
erc-macros.el Several minor changes Oct 15, 2015
erc-patch.el Moved erc-patch.el Jun 18, 2012
erc-question.el erc-question: don't always launch Google on ? Dec 10, 2017
esh-toggle.el Use push-window-configuration Feb 11, 2018
fetchmail-ctl.el Several minor fixes Jan 6, 2018
haskell-yas.el changes Nov 7, 2017
inventory.el Fixes to inventory.el Jan 22, 2018
lzw.el Added lisp/lzw.el Jul 8, 2012
main.el changes Dec 1, 2015
merlin.el Several changes Feb 16, 2015
my-gnus-score.el Gnus changes Dec 7, 2015
org-balance.el Added org-balance.el Feb 18, 2015
org-debbugs.el Added support for linking to Emacs bugs in Org Jul 4, 2012
org-devonthink.el Minor change Dec 13, 2016
org-smart-capture.el changes May 11, 2017
paredit-ext.el Various changes and a bit of cleanup Jan 22, 2013
persian-johnw.el Various minor changes Jan 9, 2013
personal.el Add profile-hook function Jan 16, 2018
prover.el changes Jul 19, 2017
sh-toggle.el Fixed provide at the end of sh-toggle.el Sep 7, 2011
z3.el Add lisp/z3.el Dec 28, 2017

Emacs Modules written by John Wiegley

This directory contains Lisp modules I’ve written, or maintain, and which are still actively used. For older modules, see the ../retired directory.



Perform a regex search through a C/C++ file, and also every file causes to be included. Displays the output in outline-mode so you can see the structure of how things are included. It includes a simple preprocessor and colorizes the results according to whether the matched would be included in the compilation or not (this part needs a bit more work though).


Perform a quick HyperSpec lookup in Emacs, using the Info pages. This is incredibly helpful if you’ve forgotten the exactly syntax to `loop’, for example. Oh wait, I just forgot it again, looking it up in cl-info…


Code for obtaining a URL to the currently selected database item in DEVONthink, a database program on Mac OS X (and one of my favorite programs of all time!). You can then use `org-insert-link’ to insert the link into any Org file.



A complete chess client and library (but with only a minimal chess AI). The main use to play against Crafty, or GnuChess, or online at It can also be used for working through puzzles, annotating games, visualizing a PGN file, playing against an Emacs Chess friend on IRC, and much, much more.


An operating system shell written entirely in Emacs Lisp. It’s main selling points are excellent integration with Lisp, and the fact that it works the same on all operating systems that run Emacs, as most are the core commands (cp, rm, ls, etc.) are in Lisp too.


Observe the e-mail addresses that you see while reading and writing e-mail, and record them all in an SQLite database, along with weighting values and a time stamp. Then, when you write a message, you can complete against the most likely candidates for a given substring.


Split up your Emacs customizations across multiple files.


An authoring and publishing tool for Emacs. Write in a simplified markup format – similar, but not identical to, Markdown – and then publish to multiple output formats: HTML, LaTeX, DocBook, and more. Support projects, the creation of websites, and easy integration of additional backends.


A regular expression workshop for programmers, supporting both Perl and Emacs Lisp regexp syntax. Basically it creates a new frame with three windows: one where you type the target data, another where you type the regexp, and a third that shows the matching groups. The target data gets color-highlighted as you type, so you can easily find problems in really complex regexps.