1. introduction
  2. basics
  3. commands
  4. search
  5. visual mode
  6. configuration
  7. commandline commands
  8. macros
  9. marks and registers
  10. optional plugins

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.

The sequences are the same as for remapping keys; see the configuration page.

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.