Registers Vim features various special memory entries called registers (not to be confused with hardware or processor registers). When cutting, deleting, copying or pasting text, the user can choose to store the manipulated text in a register. There are 36 general-purpose registers associated with letters and numbers ([a-z0-9]) and a range of special ones that either contain special values (current filename, last command, etc.) or serve a special purpose. Modes Like vi, vim supports several editing modes. Depending on the mode, typed characters are interpreted either as sequences of commands or are inserted as text. In Vim there are 12 editing modes, 6 of which are variants of the 6 basic modes. The following modes are supported: Normal mode – used for editor commands. This is also the default mode, unless the insertmode option is specified; by default hitting always returns the editor to this mode Visual mode – similar to normal mode, but used to select areas of text. Commands can be run on the selected area – moving, editing, filtering via built-in or external command, etc. Visual linewise, a subtype of visual mode which selects one or more whole lines Visual blockwise, another subtype which selects a rectangular block of text across one or more lines Select mode – similar to visual, but the commands are not interpreted, instead, highlighted text is directly replaced by input from the keyboard; similar to the selection mode used in editors on Microsoft Windows platforms Insert mode – used for typing text in a way similar to most modern editors. In this mode, opened text in buffers can be modified with the text entered from the keyboard. Command-line or Cmdline mode – provides a single line input at the bottom of the Vim window. Commands (beginning with ), and some other keys for specific actions (including pattern search and the filter command) activate this mode. On completion of the command, Vim returns to the previous mode. Ex mode mode – accepts a sequence of commands. Customization Vim is highly customizable and extensible, making it an attractive tool for users who demand a large amount of control and flexibility over their text editing environment. Text input is facilitated by a variety of features designed to increase keyboard efficiency. Users can execute complex commands with "key mappings," which can be customized and extended. The "recording" feature allows for the creation of macros to automate