ウィンドウシステムの選択範囲およびMS-Windowsのクリップボードに保存されるデータは、プレーンテキストに限定されません。選択データには、画像やその他の同様のバイナリデータのほか、HTMLやPostScriptでインスタンス化されたリッチテキストコンテンツが含まれる場合があります。これらのデータに関連する選択データの型はプレーンテキストの型とは異なるため、こうしたデータの挿入は、yank-media
handlersと呼ばれる一連の関数によって容易に行われます。これらの関数は、挿入を担う各メジャーモードによって登録され、yank-mediaコマンドの実行時に必要に応じて呼び出されます。
現在のバッファに適用されるヤンクメディアハンドラを登録します。
types は、選択データ型を指定するシンボル(選択へのアクセス を参照)、そのような型と照合するための正規表現、あるいはこれらのシンボルと正規表現のリストのいずれかになります。例えば:
(yank-media-handler 'text/html #'my-html-handler) (yank-media-handler "image/.*" #'my-image-handler)
選択が types に一致するデータ型を提供する場合、関数 handler が呼び出されてそのデータが挿入される。このとき、シンボルは一致する選択のデータ型を指定し、データは
gui-get-selection によって返される。
yank-media コマンドは、デフォルトで優先される MIME タイプを自動的に選択します。選択に使用されるルールは、変数 yank-media-autoselect-function および yank-media-preferred-types で制御できます。
この変数には、現在のメジャーモードで利用可能なMIMEタイプの一覧を引数として受け取り、使用すべき優先的なMIMEタイプの一覧を返す関数を指定する必要があります。自動選択が要求された場合、リストの先頭にあるMIMEタイプが常にyank-mediaコマンドによって使用されます。
この変数は、yank-media-autoselect-function
のデフォルトの選択プロセスを変更します。これは、選択すべき唯一の MIME
タイプを優先順位順に並べたリストです。また、関数を指定することも可能で、その場合は利用可能な MIME タイプのリストを引数として渡され、優先順位順に好ましい MIME タイプのリストを返す必要があります。このリストは yank-media
コマンドに渡されるため、自動選択が要求された際には、返されたリストの先頭要素が選択されます。
yank-media-types コマンドは、現在利用可能な選択データ型の一覧を表示します。これは
yank-media ハンドラを実装する際に有用です。というのも、プログラムでは一般的に、多種多様で一貫性に欠けるデータ型が混在しているためです。