Свойства текста в строках
Строка может содержать свойства, относящиеся к символам, помимо самих символов. Это позволяет программам, копирующим текст между строками и буферами, копировать свойства текста без особых усилий. См. Свойства текста для объяснения значения свойств текста. Строки со свойствами текста используют специальный синтаксис чтения и вывода:
#("characters" property-data...)
где property-data состоит из нуля или более элементов, сгруппированных по три:
beg end plist
Элементы beg и end — целые числа, вместе они определяют диапазон индексов в строке; plist — список свойств для данного диапазона. Например,
#("foo bar" 0 3 (face bold) 3 4 nil 4 7 (face italic))
представляет строку, текстовое содержимое которой — ‘foo bar’, в которой первые три символа имеют свойство face со значением bold, а последние три — свойство face со значением italic. (Четвертый символ не имеет свойств текста, поэтому его список свойств — nil. На самом деле нет необходимости упоминать диапазоны со nil в качестве списка свойств, так как любые символы, не упомянутые ни в одном диапазоне, по умолчанию не будут иметь свойств.)
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-Props-and-Strings.html