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


33.8.5 低レベルのkillリング

以下の関数と変数はkillリングにたいして低レベルなアクセスを提供しますが、それらはウィンドウシステムの選択(ウィンドウシステムによる選択を参照)との相互作用にも留意するので、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-paste-functioninterprogram-paste-function (ユーザーオプションsave-interprogram-paste-before-killにしたがう)と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ならエントリーの先頭に追加される。この関数はサブルーチンとしてkill-newも呼び出すのでinterprogram-cut-functionとおそらくinterprogram-paste-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されたテキストをウィンドウシステムのクリップボードに配置することである。ウィンドウシステムによる選択を参照のこと。