vi tutorial #4: Insertion Techniques

This lesson lasts 5-10 minutes.  This tutorial assumes full knowledge
of tutorial #1, and familiarity with tutorial #2.  Lines which begin
with  >>>  mark exercises you should try.  When you want to exit this
tutorial type  ZZ .


SIMPLE INSERTION
----------------
You spend most of your time in vi inserting text.  As you might expect,
there are several commands to begin insertion.

	o	OPEN a line below the cursor
	O	OPEN a line above the cursor

	i	INSERT starting before the cursor
	I	INSERT at the beginning of the line

	a	APPEND starting after the cursor
	A	APPEND at the end of the line

Remember to type ESC to leave insert mode.  If you don't have an ESC key
type  ^[ (control [ ).

	ESC	ESCAPE from insert mode

>>>  Move the cursor to this line.  Type  O  , enter your name.  Press ESC.
>>>  Next type  o  , enter the date.  Press ESC.

Note that  O  opens the line above and puts you in insert mode, 
while  o  opens the line below and also puts you in insert mode.

>>>  Type  a  on any line above, enter your name.  Press ESC.  Do the
>>>  same for  A.

>>>  Read the following.  Your goal is to take the sentence fragment below:

	BROWN FOX  OVER THE SEVEN LAZY

>>>  and convert it to

	THE QUICK BROWN FOX JUMPED OVER THE SEVEN LAZY DOGS.

>>>  To do this type:
>>>	I  to insert  THE QUICK  (then press ESC)
>>>	move the cursor to after the X in FOX
>>>	a  to insert  JUMPED   (then press ESC)
>>>	A  to insert  DOGS.  (then press ESC)
>>>  Now move to the sentence fragment and make the changes outlined above.


JOINING LINES
-------------
Often it is convenient to join two short lines into one line.  There
are several ways to do this.  The easiest is the  J  command.  Other
methods will be explored in tutorial #5.

	J	JOIN two lines

>>>  Go to the first line in the block below.  Type J.  Type J again.

	Example: NOW IS THE TIME 
	the walrus said
	TO THINK OF MANY THINGS

In the event that joining lines creates a line which exceeds the width
of the screen, you can break the line by typing  i  and pressing RETURN.


SUBSTITUTING TEXT
-----------------
Substituting combines the delete command and the insert command into a
single step.

	#s	SUBSTITUTE for # characters
	#S	SUBSTITUTE for # whole lines


In order to substitute text you have to know how much text you want to
delete.  Consider the following examples:

	3s	SUBSTITUTE the next 3 characters for what will be typed
	7s	SUBSTITUTE the next 7 characters for what will be typed

>>>  Change the SAMPLE DEFINITION below.  To do this:
>>>	move the cursor to the T in TWO
>>>	type  3s
>>>	type  FOUR  then press ESC

     SAMPLE DEFINITION:  A string quartet is defined to be
                         a group of TWO musicians.


REPLACING TEXT
--------------
The  r  and  R  commands allow you to directly type over existing text.

	r	REPLACE character (NO need to press ESC)
	R	enter over-type mode 

>>>  Correct each of the TYPOs on the sample line below.  To do this:
>>>	move the cursor to the misspelled character
>>>	type  r
>>>	type  the correct character

     SAMPLE: maintanence  conveniance  complience  applience  dilagent

>>>  Use the over-type command,  R  ,  on the sample line above.  
>>>  Type  R  then type the name of a local restaurant.  Press ESC.


CHANGING TEXT
-------------
The change command combines insertion, deletion, and the movement
commands. (Recall that the movement commands were taught in tutorial
#2.)  Change is probably more useful than replace or substitute.  The
general form of the change command is:

    cmovement	CHANGE to where the movement command specifies

Consider the following examples:

	cw	CHANGE to the beginning of the next WORD
	c$	CHANGE to the end of the line
	c)	CHANGE to the beginning of the next sentence 
	cte	CHANGE 'TIL the next  e
	c3w	CHANGE the next 3 WORDS
	cc	CHANGE a line (cc is a special case of the c command)
	c}	CHANGE to the end of the paragraph

>>>  Follow these steps:
>>>     1.  move to the desired location in the practice paragraph below
>>>     2.  type cw  (change to the beginning of the next WORD)
>>>     3.  type your name 
>>>     4.  press ESC

    PRACTICE here.  Now is the time for all good users to learn the
    editor.  The quick red fox jumped over the seven lazy fish.  Now
    is the time for all good users to learn the editor.  The quick
    brown computer jumped over the seven lazy users.  END PRACTICE

>>>  Experiment by using a variety of options for step #2.  Try
>>>  out   c$  c)  cte  c3w  cc  c}   on the practice paragraph above.

Note that the change command follows the same pattern as the delete
and yank commands which were explored in tutorial #3.


SUMMARY
-------

	o	OPEN a line below the cursor
	O	OPEN a line above the cursor

	i	INSERT starting before the cursor
	I	INSERT at the beginning of the line

	a	APPEND starting after the cursor
	A	APPEND at the end of the line

	ESC	ESCAPE from insert mode

	J	JOIN two lines

	#s	SUBSTITUTE for # characters
	#S	SUBSTITUTE for # whole lines

	r	REPLACE character (NO need to press ESC)
	R	enter over-type mode

    cmovement	CHANGE to where the movement commands specifies 
		(e.g.  c3w  c$  cc )


These commands should improve your ability to insert text efficiently.
The next tutorials deal with advanced commands and tricks which can
further speed up your editing.

Copyright (c) 1992 Jill Kliger and Wesley Craig.  All Rights Reserved.