次: , 前: Kill Ring, 上: Yanking


7.8.2 キルしたテキストの追加

通常、各キルコマンドは、キルリングに新たな項目を押し込みます。 しかし、連続したキルコマンドでは、 それぞれでキルしたテキストを1つの項目にまとめます。 そのため、1回のC-yで、キルするまえの状態に、 それらのテキストをひとまとめにヤンクできます。

したがって、テキストを一塊でヤンクしたい場合でも、 1つのコマンドでそれらをキルする必要はありません。 すべてをキルするまで、1行ずつ、あるいは、1単語ずつキルしていっても、 一括してもとに戻すことができます。

ポイント位置から前向きにキルするコマンドでは、 直前にキルしたテキストの末尾に付け加えます。 ポイント位置から後向きにキルするコマンドでは、 テキストの先頭に付け加えます。 このように、前向き/後向きの両方のキルコマンドをどのように混ぜて実行しても、 キルしたテキストの順番を崩すことなく 1つの項目としてキルリングに記録されます。 数引数を指定しても、このような追加系列が途切れることはありません。 たとえば、バッファにつぎのテキストが入っていて、 -!-の位置にポイントがあるとしましょう。

     This is a line -!-of sample text.

M-d M-<DEL> M-d M-<DEL>と打って、 前向き/後向きと交互にキルしても、 キルリングには1つの項目として`a line of sample'が入り、 バッファには`This is text.'が残ります。 (空白が2個残っていることに注意。 これらはM-<SPC>M-qで一掃できる。)

同じようにテキストをキルするもう1つの方法は、 M-b M-bで後向きに2語移動してから、 C-u M-dで前向きに4語キルします。 こうしても、バッファとキルリングの中身は、 先の例とまったく同じ結果になります。 M-f M-f C-u M-<DEL>としても、 後向きに同じテキストをキルします。 これでもやはり同じ結果が得られます。 キルリングの項目内のテキストの順序は、 キルするまえのバッファ内での順序と同じです。

キルコマンドと最後のキルコマンドのあいだに (単なる数引数ではない)他のコマンドが入ると、 キルリングには新たな項目が作られます。 しかし、キルコマンドを打つ直前に コマンドC-M-wappend-next-kill)を打っておけば、 既存の項目へ追加するように強制できます。 C-M-wは、つぎがキルコマンドであれば、 新たな項目を作成するかわりにキルしたテキストを 以前にキルしたテキストに付け加えるよう指示します。 C-M-wを使うことで、 まとめて1か所にヤンクできるように、 離れた場所にあるいくつかのテキスト断片をキルして集めておけます。

M-wに続くキルコマンドでは、 M-wがキルリングにコピーしたテキストには付け加えません。