dot-mode.el
Table of Contents
What is it?
dot-mode.el is a minor mode for GNU Emacs / XEmacs that emulates the
'.' command in vi. The original version was written in 1995 by
James Gillespie. I took over maintenance in 2000 and did a much
needed update to code portability and also added some nice features. Much
of the code was re-written, but the original design was sound and remains
intact. It is distributed under the GNU General Public License.
Why was it written?
For those of you not in the know, the '.' command
in vi simply repeats the last edit made. In my experience, this is/has
been the biggest feature that vi users claim they just can't live without.
After having developed this feature for emacs, I'd have to say I agree
with them.
dot-mode.el was written so that vi users no longer have an excuse for
not switching to an emacs variant. Emacs is, of course, superior in
every other way... ;)
Features
- New keybinding C-. emulates . command in vi.
- Calls to extended commands (M-x some-command) are also captured.
- There is an "override" mode that allows you to record keystrokes
that don't change the buffer.
- You can specify whether dot-mode remembers "undo" commands.
- dot-mode can either share a single command buffer between all
windows with dot-mode on, or each window can have it's own
command buffer.
- You can copy the saved keystrokes into the keyboard macro.
- Works on GNU Emacs (including NT Emacs) and XEmacs.
Limitations
- Certain interactive commands such as query-replace or query-replace-regexp
are not recorded properly. There is no plan to fix this. You can
still record a keyboard macro to capture these types of functions.
Download
The source is hosted on github.
Installation instructions are at the top of the file. I highly suggest
you read all the comments at the top of the file so that you fully
understand all of dot-mode's features. I do ask that if you add any
features or fix any bugs that you
e-mail me your changes. If you find
any bugs, send them to me along with information about what version of
emacs you are using.