Sometimes you want to copy text or data already entered on the system into the file you are editing. In vi you can read in the contents of another file with the ex command:
:read
filename
or its abbreviation:
:r
filename
This command inserts the contents of filename
starting on the line after the cursor position in the file.
If you want to specify a line other than the one the cursor's on,
simply type the line number (or other line address) you want before the read
or r
command.
Let's suppose you are editing the file practice and want to read in a file called data from another directory called /home/tim. Position the cursor one line above the line where you want the new data inserted, and enter:
:r /home/tim/data
The entire contents of /home/tim/data are read into practice, beginning below the line with the cursor.
To read in the same file and place it after line 185, you would enter:
:185r /home/tim/data
Here are other ways to read in a file:
:$r /home/tim/data
Place the read-in file at the end of the current file.
:0r /home/tim/data
Place the read-in file at the very beginning of the current file.
:/
pattern
/r /home/tim/data
Place the read-in file in the current file, after the line containing pattern.