An opinionated Transient-based user interface for RE-Builder, a tool for building Emacs regular expressions (regexps).
If installed via MELPA then add these lines to your Emacs initialization file with your binding of preference.
(require 'casual-re-builder) ; optional
(keymap-set reb-mode-map "C-o" #'casual-re-builder-tmenu)
(keymap-set reb-lisp-mode-map "C-o" #'casual-re-builder-tmenu)
When the command re-builder
is invoked, a buffer named “✳︎RE-Builder✳︎” is created. Activate Casual RE-Builder with the binding C-o
(or one of your preference).
At the top of the menu shows the title “RE-Builder” with the target buffer enclosed in parenthesis. The regexp pattern will be applied to the target buffer. The target buffer can be changed with the (b) Target buffer menu item.
Emacs supports three different regexp syntax: 1) read, 2) string, 3) Rx. Use the (x) Syntax menu item to alter it. The current syntax is shown in parenthesis.
If multiple sub-expressions are in the regexp pattern, then they can be observed via the (s) Subexp mode menu item.
If the regexp pattern entered in the “✳︎RE-Builder✳︎” finds multiple matches, a match can be navigated to via the (p) Previous and (n) Next menu items.
Once a desired regexp pattern is defined, there are two menu items that can be used to export (copy) it to the kill-ring for further use.
- (w) Interactive will copy the regexp to the kill-ring so that it can be yanked in an interactive command that requires a regexp (e.g.
query-replace-regexp
).- This can only be used when the regexp syntax is set to
string
. - ❗️When yanking (typically
C-y
) a regexp into an interactive prompt, you must have the point/focus in the minibuffer prompt (typically via mouse). Otherwise the desired content can be altered with extra escaping.
- This can only be used when the regexp syntax is set to
- (c) Code will copy the regexp to the kill-ring so that it can be yanked into a Elisp code that requires a regexp argument.
- (g) Interactive grep will copy the regexp so that it can be used with command that take a GNU grep regex argument.
- Example commands that do this are
dired-do-find-regexp
anddired-do-find-regexp-and-replace
. - This command presumes that you have GNU grep installed and configured for use by Emacs.
- ❗️At current this is an experimental feature. The regexp exported from RE-Builder may not work. If so please report an issue describing the desired regexp and the target text.
- This can only be used when the regexp syntax is set to
string
.
- Example commands that do this are
The menu item (i) will invoke the Info page for regexp syntax with respect to the current syntax type.
Select (q) Quit to exit the RE-Builder tool.
By enabling “Use Unicode Symbols” from the Settings menu, Casual RE-Builder will use Unicode symbols as appropriate in its menus. The following mapping is shown in the table below:
Name | Plain | Unicode |
---|---|---|
:previous | Previous | ↑ |
:next | Next | ↓ |
If you enjoy using Casual RE-Builder, consider making a modest financial contribution to help support its development and maintenance.