属性を変更する基本関数は、バッファや文字列の指定した範囲に作用します。
関数set-text-properties
(本節の最後)は、
その範囲のテキストの属性リスト全体を設定します。
これは、名前で指定した特定の属性のみを追加/変更/削除するのに
しばしば有用です。
テキスト属性はバッファ(や文字列)の一部分であるとみなされ、 スクリーン上でのバッファの見た目に影響するので、 バッファのテキスト属性を変更すると、 バッファには変更済みの印を付けます。 バッファのテキスト属性の変更もアンドゥ(see Undo)できます。
この関数は、文字列やバッファであるobject内の startとendのあいだのテキストの属性propの値を valueとする。 objectが
nil
であると、デフォルトはカレントバッファである。
この関数は、文字列やバッファであるobject内の startとendのあいだのテキストの テキスト属性に追加/上書きする。 objectが
nil
であると、デフォルトはカレントバッファである。引数propsで追加する属性を指定する。 これは属性リスト(see Property Lists)の形であること。 つまり、属性名とその値を交互に並べたリストであること。
この関数が属性の値をどれか実際に変更したならば、戻り値は
t
である。 さもなければ(propsがnil
だったり、 テキスト内の値と同じ値であると)nil
である。たとえば、テキストのある範囲の属性
comment
とface
を 設定するにはつぎのようにする。(add-text-properties start end '(comment t face highlight))
この関数は、文字列やバッファであるobject内の startとendのあいだのテキストから 指定したテキスト属性を削除する。 objectが
nil
であると、デフォルトはカレントバッファである。引数propsで削除する属性を指定する。 これは属性リスト(see Property Lists)の形であること。 つまり、属性名とその値を交互に並べたリストであること。 ただし、意味があるのは名前のみであり、その値は無視する。 たとえば、属性
face
を削除するにはつぎのようにする。(remove-text-properties start end '(face nil))この関数が属性の値をどれか実際に変更したならば、戻り値は
t
である。 さもなければ(propsがnil
だったり、 指定したテキスト内の文字にそれらのいずれの属性もなければ)nil
である。特定のテキストからすべてのテキスト属性を削除するには、 新たな属性リストとして
nil
を指定してset-text-properties
を使う。
この関数は、文字列やバッファであるobject内の startとendのあいだのテキストのテキスト属性を完全に置き換える。 objectが
nil
であると、 デフォルトはカレントバッファである。引数propsは新たな属性リストである。 これは、属性名とその値を交互に並べたリストであること。
set-text-properties
から戻ると、 指定した範囲のすべての文字は同一の属性を持つことになる。propsが
nil
であると、 テキストの指定した範囲からすべての属性を削除する効果がある。 たとえば、つぎのようにする。(set-text-properties start end nil)
バッファからテキストをコピーするがその属性はコピーしない
関数buffer-substring-no-properties
(see Buffer Contents)も
参照してください。