Next: , Previous: , Up: Emacsのディスプレイ表示   [Contents][Index]


41.16 displayプロパティ

テキストプロパティ(またはオーバーレイプロパティ)のdisplayはテキストへのイメージ挿入、およびテキスト表示のその他の事相を制御します。同じdisplayプロパティ値内のディスプレイ仕様は、一般的にはそれらがカバーするテキストにたいして並行して適用されます。

複数のソース(オーバーレイおよび/またはテキストプロパティ)がdisplayプロパティにたいして値を指定しますが1つの値だけが効果をもち、それはget-char-propertyのルールにしたがいます。テキストプロパティを調べるを参照してください。

displayプロパティの値はディスプレイ仕様、または複数のディスプレイ仕様を含むリストかベクターであるべきです。

Function: get-display-property position prop &optional object properties

これはベクター、リスト、あるいは単純なプロパティであるかどうかに関係なく、特定のdisplayを取得するために使用できる利便用関数である。これはget-text-property (テキストプロパティを調べるを参照)と似ているが、displayプロパティにたいしてのみ動作する点が異なる。

positionは調べるバッファーまたは文字列内の位置、propはリターンされるdisplayプロパティ。オプション引数objectは文字列かバッファーのいずれかで、デフォルトはカレントバッファー。オプション引数propertiesが非nilならそれはdisplayプロパティでなければならず、その場合にはpositionobjectは無視される(これはたとえばget-char-property (テキストプロパティを調べるを参照)ですでにdisplayプロパティを取得済みな場合に役に立つかもしれない)。

Function: add-display-text-property start end prop value &optional object

startからendのテキストのdisplayプロパティpropvalueを追加する。

リージョン内にdisplayプロパティが非nilのテキストがあれば、それらのプロパティは保たれる。たとえば:

(add-display-text-property 4 8 'height 2.0)
(add-display-text-property 2 12 'raise 0.5)

これを行うと2から4のリージョンのdisplayプロパティはraise、4から8のリージョンのdisplayプロパティにはraiseheightの両方、そして最後の8から12のdisplayプロパティはraiseだけになる。

objectが非nilなら、それは文字列かバッファーであること。nilの場合のデフォルトはカレントバッファー。

いくつかのディスプレイ仕様には、表示時に評価されるLispフォームを含めることができます。これは特定の状況では安全ではないかもしれません(ディスプレイ仕様が何らかの外部のプログラムやエージェントにより生成されたとき等)。(disable-eval spec)のように特別なシンボルdisable-evalで始まるリスト内にディスプレイ仕様をラップすることにより、他のすべてのディスプレイプロパティ機能をサポートしつつ、spec内の任意のLisp評価が無効になります。

このセクションの残りの部分では、複数の種類のディスプレイ仕様とそれらの意味を説明します。