テキストのコピーや移動は、それをkillしてyankすることにより通常行います。しかし多くの箇所にあるテキストブロックをコピーしたり、たくさんのテキストの断片を1ヶ所にコピーする便利な方法があります。ここではテキストの断片を、バッファーやファイルに追加するコマンドを説明します。
リージョンを指定したバッファーの内容の後に追加(append)します。
リージョンを指定したバッファーの内容の前に追加(prepend)します。
リージョンを指定したバッファーにコピーして、バッファーの古い内容は削除されます。
指定したバッファーの内容を、現在のバッファーのポイント位置に挿入します。
リージョンを指定したファイルの内容の最後に追加します。
テキストをバッファーに追加するには、M-x
append-to-bufferを使います。これはバッファー名を読み取り、リージョンのコピーを指定したバッファーに挿入します。存在しないバッファーを指定すると、append-to-buffer
はそのバッファーを作成します。テキストは、そのバッファーのポイント位置に挿入されます。バッファーを編集用に使っていると、コピーされたテキストはその時ポイントがあった位置に挿入されます。
バッファーのポイントは、コピーされたテキストの最後に残ります。連続してappend-to-buffer
を使うと、テキストは指定したバッファーにコピーした順番で追加されていきます。厳密に言うとappend-to-buffer
は既存のバッファーのテキストにたいして、常に追加をする訳ではありません。これはポイントがバッファーの最後にあるときに追加をします。しかしバッファーを変更するのにappend-to-buffer
しか使わない場合、ポイントは常にバッファーの最後に位置することになります。
M-x
prepend-to-bufferもappend-to-buffer
と同様ですが、他のバッファーのポイントはコピーされたテキストの前に置かれるので、連続してこのコマンドを使用すると、テキストは逆の順番に追加されます。M-x
copy-to-bufferも同様ですが、他のバッファーの既存の内容は削除されるので、バッファーの内容は新しくコピーされたテキストだけになります。
コマンドC-x x i
(insert-buffer
)は、追加するテキストを他のバッファーから取得するために使われます。これはバッファー名の入力を求め、そのバッファーのすべてのテキストのコピーを、現在のバッファーのポイント位置に挿入します。ポイントは挿入されたテキストの先頭になります。挿入されたテキストの最後の位置もマークリングに追加されます。マークは非アクティブになります。バッファーに関する背景情報は、複数バッファーの使用を参照してください。
バッファーのテキストを追加するかわりに、M-x append-to-fileでテキストを直接ファイルに追加できます。これはファイル名の入力を求め、リージョンのテキストを指定されたファイルの最後に追加します。ディスク上のファイルはすぐに変更されます。
append-to-file
は、Emacsがvisitしていないファイルだけに使うべきです。Emacsで編集中のファイルにたいして使用すると、それはEmacsの背後でファイルが変更されることになるため、編集内容が失われる可能性があります。
テキストの移動に関する他の方法はレジスターに格納する方法です。レジスターを参照してください。