次: , 前: Yanking, 上: Top


7.9 テキストの蓄積

通常、テキストをコピーしたり移動したりするにはキルとヤンクで行います。 しかし、一塊のテキストを何か所にもコピーしたり、 多くの箇所に分散したテキストを1か所にコピーしたりするのに 便利な方法が他にもあります。 一塊のテキストを何か所にもコピーするには、 そのテキストをレジスタに保存します(see Registers)。 ここでは、何か所かに分散したテキストをバッファやファイルに 蓄積するためのコマンドを説明します。

M-x append-to-buffer
リージョンを指定したバッファの内容の末尾に付加する。
M-x prepend-to-buffer
リージョンを指定したバッファの内容の先頭に付加する。
M-x copy-to-buffer
リージョンを指定したバッファにコピーするが、 そのバッファの古い内容は削除する。
M-x insert-buffer
指定したバッファの内容をカレントバッファのポイント位置に挿入する。
M-x append-to-file
リージョンを指定したファイルの内容の末尾に付加する。

テキストをバッファに蓄積するには、M-x append-to-bufferを使います。 これは、バッファ名を読み取り、 リージョンのコピーを指定したバッファに挿入します。 存在しないバッファを指定した場合、 append-to-bufferはバッファを作成します。 テキストは、そのバッファ内のポイント位置に挿入されます。 バッファを編集用に使っている場合には、 そのバッファ内のテキストのあいだ、 その時点のポイント位置にコピーしたテキストを挿入します。

コピー先のバッファ内では、ポイントはコピーされたテキストの末尾に置かれます。 したがって、連続してappend-to-bufferを使うと、 コピーした順序でバッファにテキストが蓄積されます。 厳密には、append-to-bufferは、 バッファ内の既存のテキストに追加するとは限りません。 そのバッファの末尾にポイントがある場合に限り、追加します。 しかし、バッファを変更するコマンドがappend-to-bufferだけならば、 ポイントはつねに末尾に置かれています。

M-x prepend-to-bufferappend-to-bufferにとてもよく似ていますが、 コピー先のバッファ内のポイントは、 コピーしたテキストの直前に置かれる点が異なります。 つまり、続けてこのコマンドを使うと、 テキストは逆順に追加されていきます。 M-x copy-to-bufferも同様ですが、 指定したバッファ内の既存のテキストを削除します。 したがって、バッファには新たにコピーしたテキストだけが残ります。

別のバッファに蓄積したテキストを取り出すには、 コマンドM-x insert-bufferを使います。 このコマンドも引数としてbuffernameを必要とします。 バッファbuffername内のテキストのコピーを 選択しているバッファに挿入します。 あるいは、そのバッファを選択して編集し、 場合によってはキルしてそのバッファからテキストを移動することもできます。 バッファに関する背景情報は、See Buffers

テキストをEmacsのバッファに蓄積するかわりに、 M-x append-to-fileを使って、テキストを直接ファイルに追加できます。 このコマンドは引数としてfilenameを必要とします。 リージョンのテキストを指定したファイルの末尾に追加します。 ファイルはディスク上でただちに更新されます。

このコマンドに指定するファイルは、 Emacsで訪問していないファイルだけに限るべきです。 Emacsで編集中のファイルを指定すると、 Emacsに隠れてファイルを変更することになり、 編集内容の一部を失うことにもなりかねません。