Being able to delete large blocks of text at a single bound is all very well and good, but what if you mistakenly delete 53 lines that you need? There's a way to recover any of your past nine deletions, because they're saved in numbered buffers. The last delete is saved in buffer 1, the second-to-last in buffer 2, and so on.
To recover a deletion, type <">
(the double quote character),
identify the
buffered text by number, then give the put command.
To recover your second-to-last deletion from buffer 2, type:
"2p
The deletion in buffer 2 is placed on the line below the cursor.
If you're not sure which buffer contains the deletion you want to
restore, you don't have to keep typing <">
np
over
and over again.
If you use the repeat command (.
) with p
after u
(undo), it automatically increments the buffer number.
As a result, you can search through the numbered buffers as follows:
"1pu.u.u etc.
to put the contents of each succeeding buffer in the file
one after the other.
Each time you type u
, the restored text is removed; when
you type a dot (.), the contents of the next buffer is restored to
your file.
Keep typing u
and . until you've recovered the text
you're looking for.
- from O'Reilly & Associates' Learning the vi Editor, Chapter 4