Xのようなウィンドウシステムでは、異なるアプリケーション間のデータ転送は選択(selections)により行われます。Xは任意の数の選択タイプ(selection types)を定義し、それぞれが独自にデータを格納できます。しかし一般的に使用されるのはクリップボード(clipboard)、プライマリー選択(primary selection)、セカンダリー選択(secondary selection)の3つだけです。それ以外のウィンドウシステムではクリップボードだけがサポートされます。これら3つの選択を使用するEmacsコマンドについてはCut and Paste in The GNU Emacs Manualを参照してください。このセクションではウィンドウシステムによる選択の読み取りとセットを行う低レベル関数について説明します。
この関数はウィンドウシステムの選択をセットする。これは選択タイプtype、それに割り当てる値dataという2つの引数を受け取る。
typeはシンボルであること。通常はPRIMARY
、SECONDARY
、CLIPBOARD
のいずれかである。これらはXウィンドウシステムの慣例に対応する大文字のシンボル名である。typeがnil
ならそれはPRIMARY
を意味する。
dataがnil
なら、それはその選択をクリアーすることを意味する。それ以外ならdataは文字列、シンボル、整数、オーバーレイ、同じバッファーを指す2つのマーカーのコンスを指定できる。オーバーレイとマーカーのペアは、そのオーバーレイまたはマーカー間のテキストを意味する。引数dataには有効な非ベクターの選択のベクターも指定できる。
dataが文字列なら、そのテキストプロパティによって個々のデータタイプに使用する値を指定できる。たとえばdataがtext/uri-list
という名前のテキストプロパティを保有していれば、データタイプtext/uri-list
とともにgui-get-selection
を呼び出すことによって、data自身のかわりにそのプロパティの値が使用される。
この関数はdataをリターンする。
この関数はEmacsや他のプログラムによりセットアップされた選択にアクセスする。これはtypeとdata-typeの2つの引数を受け取る。typeは選択のタイプでありデフォルトはPRIMARY
。
data-type引数は別のXクライアントから取得したrawデータをLispデータに変換するためにデータ変換に使用する形式を指定する。有意義な値にはTEXT
、STRING
、UTF8_STRING
、TARGETS
、LENGTH
、DELETE
、FILE_NAME
、CHARACTER_POSITION
、NAME
、LINE_NUMBER
、COLUMN_NUMBER
、OWNER_OS
、HOST_NAME
、USER
、CLASS
、ATOM
、INTEGER
が含まれる(これらは対応するX慣習の大文字シンボル名である)。data-typeのデフォルトはSTRING
。X以外のウィンドウシステムは、通常はSTRING
に加えて、少数の部分集合だけをサポートする。
この変数は選択やクリップボードに読み書きする際のコーディングシステムを指定する。コーディングシステムを参照のこと。デフォルトはcompound-text-with-extensions
で、これはX11が通常使用するテキスト表現に変換する。
EmacsがMS-Windows上で実行されている際には、一般的にX選択はサポートされませんがクリップボードはサポートされます。MS-Windowsでのgui-get-selection
とgui-set-selection
は、テキストデータタイプだけをサポートします。クリップボードが他のタイプのデータを保持している場合には、Emacsはクリップボードを空として扱います。サポートされるデータタイプはSTRING
です。
後方互換性のためにgui-get-selection
とgui-set-selection
にたいして、Emacs
25.1以前の名前x-get-selection
とx-set-selection
が時代遅れのエイリアスとして存在します。