Usually we copy or move text by killing it and yanking it, but there are other methods convenient for copying one block of text in many places, or for copying many scattered blocks of text into one place. To copy one block to many places, store it in a register (see section Registers). Here we describe the commands to accumulate scattered pieces of text into a buffer or into a file.
To accumulate text into a buffer, use M-x append-to-buffer.
This reads a buffer name, them inserts a copy of the region into the
buffer specified. If you specify a nonexistent buffer,
append-to-buffer creates the buffer. The text is inserted
wherever point is in that buffer. If you have been using the buffer for
editing, the copied text goes into the middle of the text of the buffer,
wherever point happens to be in it.
Point in that buffer is left at the end of the copied text, so
successive uses of
append-to-buffer accumulate the text in the
specified buffer in the same order as they were copied. Strictly
append-to-buffer does not always append to the text
already in the buffer--only if point in that buffer is at the end.
append-to-buffer is the only command you use to alter
a buffer, then point is always at the end.
M-x prepend-to-buffer is just like
except that point in the other buffer is left before the copied text, so
successive prependings add text in reverse order. M-x
copy-to-buffer is similar except that any existing text in the other
buffer is deleted, so the buffer is left containing just the text newly
copied into it.
To retrieve the accumulated text from another buffer, use M-x insert-buffer; this too takes buffername as an argument. It inserts a copy of the text in buffer buffername into the selected buffer. You can alternatively select the other buffer for editing, then optionally move text from it by killing. See section Using Multiple Buffers, for background information on buffers.
Instead of accumulating text within Emacs, in a buffer, you can append text directly into a file with M-x append-to-file, which takes filename as an argument. It adds the text of the region to the end of the specified file. The file is changed immediately on disk.
You should use
append-to-file only with files that are
not being visited in Emacs. Using it on a file that you are
editing in Emacs would change the file behind Emacs's back, which
can lead to losing some of your editing.