以下の関数と変数はkillリングにたいして低レベルなアクセスを提供しますが、それらはウィンドウシステムの選択(ウィンドウシステムによる選択を参照)との相互作用にも留意するので、Lispプログラム内での使用に関しても依然として有用です。
関数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-kill
はnにたいする0値を特別に扱うことはなく、yankポインターが指すエントリーをリターンしてyankポインターの移動は行わない。
この関数はテキストstringをkillリング上にpushしてyankポインターがそれを指すようにセットする。それが適切なら、もっとも古いエントリーを破棄する。
interprogram-paste-function
interprogram-paste-function
(ユーザーオプションsave-interprogram-paste-before-kill
にしたがう)とinterprogram-cut-function
(以下参照)の値の呼び出しも行う。
replaceが非nil
ならkill-new
はkillリング上にstringをpushせずに、killリングの1つ目の要素をstringに置き換える。
この関数はkillリング内の最初のエントリーにテキストstringを追加して、その結合されたエントリーを指すようにyankポインターをセットする。通常はそのエントリーの終端にstringが追加されるが、before-pが非nil
ならエントリーの先頭に追加される。この関数はサブルーチンとしてkill-new
も呼び出すのでinterprogram-cut-function
とおそらくinterprogram-paste-function
の値(以下参照)が拡張により呼び出される。
この変数は他のプログラムからkillリングへkillされたテキストを転送する方法を提供する。値はnil
、または引数のない関数であること。
値が関数なら、もっとも最近のkillを取得するためにcurrent-kill
はそれを呼び出す。その関数が非nil
値をリターンすると、その値がもっとも最近のkillとして使用される。nil
をリターンしたらkillリングの先頭が使用される。
複数選択をサポートするウィンドウシステムのサポートを容易にするために、この関数は文字列のリストをリターンすることもある。その場合には1つ目の文字列がもっとも最近のkillとして使用され、その他の文字列はすべてyank-pop
によるアクセスを容易にするためにkillリング上にpushされる。
この関数の通常の用途は、たとえそれが他アプリケーションに属する選択であっても、もっとも最近のkillとしてウィンドウシステムのクリップボードからそれを取得することである。しかしクリップボードのコンテンツがカレントEmacsセッションに由来するなら、この関数はnil
をリターンする筈である。
この変数はウィンドウシステム使用時に、他のプログラムにkillされたテキストを転送する方法を提供する。値はnil
、または1つの引数を要求する関数であること。
値が関数ならkill-new
とkill-append
はkillリングの新たな1つ目要素を引数としてそれを呼び出す。
この関数の通常の用途は、新たにkillされたテキストをウィンドウシステムのクリップボードに配置することである。ウィンドウシステムによる選択を参照のこと。