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.