You have inserted text before the cursor with the sequence:
i
text to be inserted
[ESC]
You've also inserted text after the cursor with the
a
command. There are other insert commands for inserting text at different positions relative to the cursor:
A
|
Append text to end of current line. |
I
|
Insert text at beginning of line. |
o
|
Open blank line below cursor for text. |
O
|
Open blank line above cursor for text. |
s
|
Delete character at cursor and substitute text. |
S
|
Delete line and substitute text. |
R
|
Overstrike existing characters with new characters. |
A
(append) and
I
(insert) save you from having to move your cursor to the end or beginning of the line before invoking insert mode. (The
A
command saves one keystroke over
$a
. Although one keystroke might not seem like much of a saving, the more adept (and impatient) an editor you become, the more keystrokes you will want to omit.)
o
and
O
(open) save you from having to insert a carriage return. You can type these commands from anywhere within the line.
s
and
S
(substitute) allow you to delete a character or a whole line and replace the deletion with any amount of new text.
s
is the equivalent of the two-stroke command
c
[SPACE]
and
S
is the same as
cc
. One of the best uses for
s
is to change one character to several characters.
R
("large" replace) is useful when you want to start changing text, but you don't know exactly how much. For example, instead of guessing whether to say
3cw
or
4cw
, just type
R
and then enter your replacement text.
Except for
o
and
O
, the above insert commands (plus
i
and
a
) take numeric prefixes. With numeric prefixes, you might use the commands
i
,
I
,
a
, and
A
to insert a row of underlines or alternating characters. For example, typing
50i*
[ESC]
inserts 50 asterisks, and typing
25a*-
[ESC]
appends 50 characters (25 pairs of asterisk and hyphen). It's better to repeat only a small string of characters.
vi
has difficulty repeating the insertion of more than one line's worth of text.
You can use a numeric prefix with
S
to substitute several lines. It's quicker and more flexible, though, to use
c
with a movement command.
A good case for using the
s
command with a numeric prefix is when you want to change a few characters in the middle of a word. Typing
r
wouldn't be enough, but typing
cw
would change too much text. Using
s
with a numeric prefix is usually the same as typing
R
.
There are other combinations of commands that work naturally together. For example,
ea
is useful for appending new text to the end of a word. It helps to train yourself to recognize such frequent combinations so that they become automatic.