Next: , Previous: Text Properties, Up: Text Properties


31.19.1 テキスト属性を調べる

テキスト属性を調べるもっとも簡単な方法は、 特定の文字の特定の属性の値を問い合わせることです。 それには、get-text-propertyを使います。 文字の属性リスト全体を取得するにはtext-properties-atを使います。 複数の文字の属性を一度に調べるための関数については、 See Property Search

これらの関数は、文字列とバッファの両方を扱えます。 文字列内の位置は0から始まり、 バッファ内の位置は1から始まることに注意してください。

— Function: get-text-property pos prop &optional object

この関数は、object(バッファか文字列)内の位置posの うしろの1文字の属性propの値を返す。 引数objectは省略でき、 デフォルトはカレントバッファである。

その文字に属性propがなくてもシンボルであるカテゴリがあれば、 get-text-propertyは当該シンボルの属性propを返す。

— Function: get-char-property pos prop &optional object

この関数はget-text-propertyに似ているが、 まずオーバレイを調べてからテキスト属性を調べる。 see Overlays

引数objectは、文字列、バッファ、ウィンドウのいずれかである。 ウィンドウであると、そのウィンドウに表示しているバッファの テキスト属性とオーバレイを対象にするが、 対象となるオーバレイはそのウィンドウに対して活性なものだけである。 objectがバッファであると、テキスト属性に加えて そのバッファのすべてのオーバレイを対象にする。 objectが文字列であると、 文字列にはオーバレイはないので、テキスト属性のみを対象にする。

— Function: text-properties-at position &optional object

この関数は、文字列やバッファであるobject内の 位置positionにある1文字の属性リスト全体を返す。 objectnilであると、デフォルトはカレントバッファである。

— Variable: default-text-properties

この変数は、テキスト属性のデフォルト値を与える属性リストを保持する。 直接的にもカテゴリシンボルを介して間接的にも 文字に属性の値が指定されていないと、 このリストに収めた値をかわりに使う。 つぎに例を示す。

          (setq default-text-properties '(foo 69))
          
          ;; 位置1の文字に属性がないことを保証する
          (set-text-properties 1 2 nil)
          
          ;; 問い合わせたときに見えるのはデフォルト値である
          (get-text-property 1 'foo)
               ⇒ 69