Tim Visher has a new VimGolf in Emacs up. This time it’s a simple alignment problem using
align-regexp, a function that we’ve talked about before. In this case he just used the simple
align-regexp case and was done in about 6 keystrokes, much less than the 18 that the best Vim solution took.
It turns out the the
align function, of which
align-regexp is a special case, is very flexible. It will try to align the region or current group of text in a context dependent way. The action of
align is specified by a set of rules that specify context (such as major mode), a regular expression, and some other attributes. The list of rules is in the variable
align-rules-list. The documentation for that variable explains the various options and gives its current value. You can also pass in your own list of rules. The
align-regexp function basically just prompts you for an ad hoc rule.
Unfortunately, the documentation isn’t very good and the rules can be quite complex. Visher mentions this page from the EmacsWiki that gives some examples but it is by no means a complete explanation. This is a very powerful function and I wish the documentation on it was better. Unfortunately it isn’t even mentioned in the Emacs manual.