Next: , Previous: , Up: killリング   [Contents][Index]


33.8.4 yank用の関数

このセクションではyank用の高レベルなコマンドを説明します。これらのコマンドは主にユーザー用に意図されたものですが、Lispプログラム内での使用にたいしても有用です。yankyank-popはいずれも、変数yank-excluded-propertiesとテキストプロパティyank-handlerにしたがいます(yankを参照)。

Command: yank &optional arg

このコマンドはkillリングの先頭にあるテキストをポイントの前に挿入する。これはpush-mark(マークを参照)を使用して、そのテキストの先頭にマークをセットする。

argが非nilのリスト(これはユーザーがインタラクティブに数字を指定せずにC-uタイプ時に発生する)なら、yankは上述のようにテキストを挿入するがポイントはyankされたテキストの前、マークはyankされたテキストの後に置かれる。

argが数字ならyankarg番目に最近killされたテキスト、すなわちkillリングリストのarg番目の要素を挿入する。この順番はコマンドの目的にたいして1番目の要素としてみなされるリスト先頭の要素から巡回的に数えられる。

yankは、それが他のプログラムから提供されるテキストを使用しないかぎり(使用する場合はそのテキストをkillリングにpushする)、killリングのコンテンツを変更しない。しかしargが非1の整数なら、killリングを転回(rotate)してyankされるテキストをリング先頭に置く。

yanknilをリターンする。

Command: yank-pop &optional arg

yankや別のyank-popの直後に呼び出されると、このコマンドはkillリングからyankしたばかりのエントリーを、killリングの別のエントリーに置き換える。このようにコマンドが呼び出されたときは、リージョンには別のyankコマンドが挿入したばかりのテキストが含まれる。yank-popはそのテキストを削除して、killされた別のテキスト片をその位置に挿入する。そのテキスト片はすでにkillリング内のどこか別の箇所にあるので、これは削除されたテキストをkillリングに追加しない。しかし新たにyankされたテキストが先頭になるように、killリングの転回は行う。

argnilなら置換テキストはkillリングの1つ前の要素。argが数字なら置換テキストはkillリングのarg個前の要素である。argが負なら、より最近のkillが置換される。

killリング内のkillされたエントリーの順序はラップするので、繰り返しyank-popを呼び出してもっとも古いkillに達すると、その後はもっとも新しいkillとなり、もっとも新しいkillの前がもっとも古いkillとなる。

このコマンドはyank以外のコマンドの後でも呼び出せる。この場合にはミニバッファーでkillリングエントリーにたいする入力を求めて、ミニバッファーヒストリー(ミニバッファーのヒストリーを参照)としてkillリング要素を使用する。これによりユーザーはkillリング内に記録されている以前のkillをインタラクティブに選択できる。

リターン値は常にnilである。

Variable: yank-undo-function

この変数が非nilなら、関数yank-popは前のyankyank-popにより挿入されたテキストを削除するために、delete-regionのかわりにこの変数の値を使用する。値はカレントリージョンの開始と終了という2つの引数をとる関数でなければならない。

関数insert-for-yankはテキストプロパティyank-handlerの要素undoに対応して、この変数を自動的にセットする。