33.19 Свойства текста

Каждая позиция символа в буфере или строке может иметь список свойств текста, подобно списку свойств символа (см. Списки свойств). Свойства относятся к определенному символу в определенном месте, например, к букве ‘T’ в начале этого предложения или к первой ‘o’ в ‘foo’—если тот же символ встречается в двух разных местах, две эти позиции, как правило, имеют разные свойства.

Каждое свойство имеет имя и значение. Оба могут быть любым объектом Lisp, но имя обычно является символом. Обычно каждому символу имени свойства предназначено определенное назначение; например, свойство текста face указывает на отображаемые грани (см. Свойства со специальным значением). Обычный способ доступа к списку свойств — указать имя и спросить, какое значение ему соответствует.

Если символ имеет свойство category, мы называем это категорией свойства символа. Это должно быть символом. Свойства символа служат значениями по умолчанию для свойств символа.

Копирование текста между строками и буферами сохраняет свойства вместе с символами; это включает такие разнообразные функции, как substring, insert и buffer-substring. Удаление и последующее вставка текста (см. Буфер обмена) также сохраняет свойства, за исключением того, что некоторые свойства обрабатываются по-особому и могут быть удалены при вставке текста; см. Вставка.