Copying a File into Another File
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.
Get Learning the vi and Vim Editors, 7th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.