Свойства текста
Каждая позиция символа в буфере или строке может иметь список свойств текста, аналогично списку свойств символа (см. Списки свойств). Свойства относятся к конкретному символу в конкретном месте, например, к букве «T» в начале этого предложения или к первой букве «o» в «foo»—если один и тот же символ встречается в двух разных местах, две его реализации, как правило, имеют разные свойства.
Каждое свойство имеет имя и значение. Оба могут быть любыми объектами Lisp, но имя обычно является символом. Обычно каждый символ имени свойства используется для определенной цели; например, свойство текста face определяет шрифты для отображения символа (см. Специальные свойства). Обычный способ доступа к списку свойств — указать имя и узнать соответствующее значение.
Если у символа есть свойство category, мы называем его категорией свойств символа. Это должен быть символ. Свойства символа служат значениями по умолчанию для свойств символа.
Копирование текста между строками и буферами сохраняет свойства вместе с символами; это включает такие разнообразные функции, как substring, insert, и buffer-substring.
| • Просмотр свойств | Просмотр свойств одного символа. | |
| • Изменение свойств | Установка свойств диапазона текста. | |
| • Поиск свойств | Поиск мест, где изменяется значение свойства. | |
| • Специальные свойства | Определенные свойства со специальными значениями. | |
| • Свойства форматирования | Свойства для представления форматирования текста. | |
| • Прилипающие свойства | Как вставленный текст получает свойства от соседнего текста. | |
| • Ленивые свойства | Вычисление свойств текста ленивым способом только при их проверке. | |
| • Нажимаемый текст | Использование свойств текста для выполнения действий над областями текста при нажатии на них. | |
| • Поля | Свойство field определяет поля в буфере. |
|
| • Не интервалы | Почему свойства текста не используют видимые в Lisp текстовые интервалы. |
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Text-Properties.html