PREV UP NEXT GNU Emacs Lisp Reference Manual

29.18: Text Properties

Each character position in a buffer or a string can have a text property list, much like the property list of a symbol (see Property Lists). The properties belong to a particular character at a particular place, such as, the letter T at the beginning of this sentence or the first o in foo---if the same character occurs in two different places, the two occurrences generally have different properties.

Each property has a name and a value. Both of these can be any Lisp object, but the name is normally a symbol. The usual way to access the property list is to specify a name and ask what value corresponds to it.

If a character has a category property, we call it the category of the character. It should be a symbol. The properties of the symbol serve as defaults for the properties of the character.

Copying text between strings and buffers preserves the properties along with the characters; this includes such diverse functions as substring, insert, and buffer-substring.

  • Examining Properties Looking at the properties of one character.
  • Changing Properties Setting the properties of a range of text.
  • Property Search Searching for where a property changes value.
  • Special Properties Particular properties with special meanings.
  • Format Properties Properties for representing formatting of text.
  • Sticky Properties How inserted text gets properties from neighboring text.
  • Saving Properties Saving text properties in files, and reading them back.
  • Not Intervals Why text properties do not use Lisp-visible text intervals.