Next: , Previous: , Up: The Kill Ring   [Contents][Index]


31.8.5 低レベルのkillリング

以下の関数と変数はkillリングにたいして低レベルなアクセスを提供しますが、それらはウィンドウシステムの選択(Window System Selectionsを参照)との相互作用にも留意するので、Lispプログラム内での使用に関しても依然として有用です。

Function: current-kill n &optional do-not-move

関数current-killはkillリングの先頭を指すyankポインターを、(新しいkillから古いkillに) n個転回して、リング内のその箇所のテキストをリターンする。

オプションの第2引数do-not-moveが非nilなら、current-killはyankポインターを変更しない。カレントyankポインターからn個目のkillを単にリターンする。

nが0ならそれは最新のkillの要求を意味しており、current-killはkillリング照会前にinterprogram-paste-function (以下参照)の値を呼び出す。その値が関数であり、かつそれが文字列か複数の文字列からなるリストをリターンすると、current-killはその文字列をkillリング上にpushして最初の文字列をリターンする。これはdo-not-moveの値に関わらず、interprogram-paste-functionがリターンする最初の文字列のkillリングエントリーを指すようにyankポインターのセットも行う。それ以外ではcurrent-killnにたいする0値を特別に扱うことはなく、yankポインターが指すエントリーをリターンしてyankポインターの移動は行わない。

Function: kill-new string &optional replace

この関数はテキストstringをkillリング上にpushして、yankポインターがそれを指すようにセットする。それが適切ならもっとも古いエントリーを破棄する。interprogram-cut-function (以下参照)の呼び出しも行う。

replaceが非nilならkill-newはkillリング上にstringをpushせずに、killリングの1つ目の要素をstringに置き換える。

Function: kill-append string before-p

この関数はkillリング内の最初のエントリーにテキストstringを追加して、その結合されたエントリーを指すようにyankポインターをセットする。通常はそのエントリーの終端にstringが追加されるが、before-pが非nilならエントリーの先頭に追加される。この関数はinterprogram-cut-function (以下参照)の呼び出しも行う。

Variable: interprogram-paste-function

この変数は他のプログラムからkillリングへkillされたテキストを転送する方法を提供する。値はnil、または引数のない関数であること。

値が関数なら、もっとも最近のkillを取得するためにcurrent-killはそれを呼び出す。その関数が非nil値をリターンすると、その値がもっとも最近のkillとして使用される。nilをリターンしたらkillリングの先頭が使用される。

複数選択をサポートするウィンドウシステムのサポートを容易にするために、この関数は文字列のリストをリターンすることもある。その場合には1つ目の文字列がもっとも最近のkillとして使用され、その他の文字列はすべてyank-popによるアクセスを容易にするためにkillリング上にpushされる。

この関数の通常の用途は、たとえそれが他アプリケーションに属する選択であっても、もっとも最近のkillとしてウィンドウシステムのクリップボードからそれを取得することである。しかしクリップボードのコンテンツがカレントEmacsセッションに由来するなら、この関数はnilをリターンする筈である。

Variable: interprogram-cut-function

この変数はウィンドウシステム使用時に、他のプログラムにkillされたテキストを転送する方法を提供する。値はnil、または1つの引数を要求する関数であること。

値が関数ならkill-newkill-appendはkillリングの新たな1つ目要素を引数としてそれを呼び出す。

この関数の通常の用途は、新たにkillされたテキストをウィンドウシステムのクリップボードに配置することである。Window System Selectionsを参照のこと。