9 .. doxygengroup:: vis_lifecycle
15 .. doxygengroup:: vis_draw
21 .. doxygengroup:: vis_windows
27 The editor core processes input through a sequences of symbolic keys:
29 * Special keys such as ``<Enter>``, ``<Tab>`` or ``<Backspace>`` as reported by
30 `termkey_strfkey <http://www.leonerd.org.uk/code/libtermkey/doc/termkey_strfkey.3.html>`_.
32 .. note:: The prefixes ``C-``, ``S-`` and ``M-`` are used to denote the ``Ctrl``,
33 ``Shift`` and ``Alt`` modifiers, respectively.
35 * Key action names as registered with `vis_action_register`.
37 .. note:: By convention they are prefixed with ``vis-`` as in ``<vis-nop>``.
39 * Regular UTF-8 encoded input.
41 .. note:: An exhaustive list of the first two types is displayed in the ``:help`` output.
43 .. doxygengroup:: vis_keys
49 The key map is used to translate keys in non-input modes, *before* any key
50 bindings are evaluated. It is intended to facilitate usage of non-latin keyboard
53 .. doxygengroup:: vis_keymap
59 Each mode has a set of key bindings. A key binding maps a key to either
60 another key (referred to as an alias) or a key action (implementing an
63 If a key sequence is ambiguous (i.e. it is a prefix of multiple mappings)
64 more input is awaited, until a unique mapping can be resolved.
66 .. warning:: Key aliases are always evaluated recursively.
68 .. doxygengroup:: vis_keybind
74 A key action is invoked by a key binding and implements a certain editor function.
76 The editor operates like a finite state machine with key sequences as
77 transition labels. Once a prefix of the input queue uniquely refers to a
78 key action, it is invoked with the remainder of the input queue passed as argument.
80 .. note:: A triggered key action currently does not know through which key binding
81 it was invoked. TODO: change that?
83 .. doxygengroup:: vis_action
89 A mode defines *enter*, *leave* and *idle* actions and captures a set of
92 Modes are hierarchical, key bindings are searched recursively towards
93 the top of the hierarchy stopping at the first match.
95 .. doxygenenum:: VisMode
96 .. doxygengroup:: vis_modes
102 Dictates how many times a motion or text object is evaluated. If none
103 is specified, a minimal count of 1 is assumed.
105 .. doxygengroup:: vis_count
111 .. doxygengroup:: vis_operators
117 .. doxygengroup:: vis_motions
123 .. doxygengroup:: vis_textobjs
129 Marks keep track of a given text position.
131 .. note:: Marks are currently file local.
133 .. doxygengroup:: vis_marks
139 .. doxygengroup:: vis_registers
145 Macros are a sequence of keys stored in a Register which can be reprocessed
146 as if entered by the user.
148 .. warning:: Macro support is currently half-baked. If you do something stupid
149 (e.g. use mutually recursive macros), you will likely encounter
152 .. doxygengroup:: vis_macros
158 .. doxygengroup:: vis_cmds
164 .. doxygengroup:: vis_options
170 These function operate on the currently focused window but ensure that
171 all windows which show the affected region are redrawn too.
173 .. doxygengroup:: vis_changes
179 .. doxygengroup:: vis_info
185 .. doxygengroup:: vis_misc