Previous: , Up: yank   [Contents][Index]


13.2.3 killしたテキストの追加

通常はkillコマンドを実行するごとに、新しいエントリーがkillリングにpushされます。しかし2回以上の連続するkillコマンドにより、killされたテキストを1つのエントリーとしてまとめ、すべてのテキストを1単位として、あたかもそれがkillされたかのように、1回のC-yでyankできます。

つまりテキストを1つの単位としてyankしたいとき、そのテキストすべてを1回でkillする必要はありません。すべてがkillされるまで行から行、単語から単語へとkillを続け、それを一度に取得することができます。

ポイントから前方にkillするコマンドは、直前にkillされたテキストの最後に追加します。ポイントから後方にkillするコマンドは、テキストの先頭に追加します。この方法により前方と後方を併用した連続するkillコマンドは、すべてのkillされたテキストを再配置しなくてもよいように、1つのエントリーにまとめます。数引数を指定してもkillの連続性は途切れません。たとえば以下のようなテキストを含むバッファーがあるとしましょう:

This is a line ∗of sample text.

ポイントの位置は∗で示された場所です。M-d M-DEL M-d M-DELとタイプして、前方と後方へのkillを交互に行うと、最後にkillリングには‘a line of sample’という1つのエントリー、バッファーには‘This is  text.が残ります(‘is’と‘text’の間には2つのスペースがあることに注意してください。これはM-SPCまたはM-qで取り除くことができます)。

同じテキストをkillする別の方法は、M-b M-bで単語2つ後方に移動してから、C-u M-dで前方の単語4つをkillする方法です。これはバッファーとkillリングに、正確に同じ結果をもたらします。M-f M-f C-u M-DELで後方にkillしても結果は同じです。killリングのエントリーは、常にバッファーからkillされる前と同じ順番になります。

killコマンドと最後のキルコマンドの間に、(単なる数引数ではない)他のコマンドが入ると、killリングには新たなエントリーが作られます。しかし、あらかじめC-M-w (append-next-kill)とタイプすることにより、最後にkillされたテキストに追加するように強制できます。C-M-wは、後に続くコマンドがkillコマンドであれば、killしたテキストを前にkillしたテキストに付け加えるよう指示します。この方法でも、前方にkillするコマンドの場合は、前にkillされたテキストの最後に追加され、後方にkillするコマンドの場合は、先頭に追加されます。この方法により、1ヶ所にyankするために離れた場所にあるいくつかのテキスト断片を、killして集めることができます。

M-w (kill-ring-save)の後のkillコマンドは、M-wでkillリングにコピーされたテキストへの追加はしません。