Vrapper — Vim-like editing in Eclipse

Macros

Overview

Vrapper supports basic macro functionality. It is possible to record,
edit, and execute different macros to speed up repetetive operations.

Macros are limited to Vrapper commands and insert operations.
Eclipse actions can not be recorded. This includes autocompletion and
similar tools used during insert mode.

Recording Macros

To record a macro, use qx where x is a character from a-z. All
characters typed after x will be added to the macro x. To stop recording,
press q. The macro is then written into register x.

It is also possible to append to an existing macro by using qX where X
is a character from A-Z.

Executing Macros

To execute macro x, use @x.

While executing a macro, some parts of Vrapper behave differently. See
Possible Issues for more information.

Note that there is a special macro @:. This macro will run the last
command line again, which might be useful for specific actions like :tabnext.

Editing Macros

Macros are stored in named registers. This means it is possible
to edit a macro by pasting it, making some changes and then yanking it
back to the register.

Special and control characters are stored as multi-char sequences. This
is different from Vim's macros, where special characters are stored the
same way as the other characters. The reason for this is that Eclipse
editors are not intended to display control characters.

Possible Issues

Insert mode behaves different when executing macros. Normally insert mode does not
change the edited text, but only records what is typed for use with the dot
operator etc. The keystrokes are passed to the underlying editor who then
inserts the typed characters. During macro execution nothing can be passed
to the underlying editor, because no events are generated. This means
insert mode has to do the editing. Although insert mode tries to use
the smart insert functionality of the underlying editor, this may still
cause unexpected behaviour in some cases.

Backspace (during inserts) removes the character behind the cursor.
When the underlying editor behaves differently, backspace should not be
used in macros.

Special keys other than backspace and return will be ignored in insert
mode during macro execution.

Calling a macro while defining it (e.g. qa@aq, then executing macro a)
will result in an unlimited recursion.