Next: Processes, Previous: Syntax Tables, Up: Top
An abbreviation or abbrev is a string of characters that may be expanded to a longer string. The user can insert the abbrev string and find it replaced automatically with the expansion of the abbrev. This saves typing.
The set of abbrevs currently in effect is recorded in an abbrev table. Each buffer has a local abbrev table, but normally all buffers in the same major mode share one abbrev table. There is also a global abbrev table. Normally both are used.
An abbrev table is represented as an obarray containing a symbol for
each abbreviation. The symbol's name is the abbreviation; its value
is the expansion; its function definition is the hook function to do
the expansion (see Defining Abbrevs); its property list cell
typically contains the use count, the number of times the abbreviation
has been expanded. Alternatively, the use count is on the
count property and the system-abbrev flag is on the
system-type property. Abbrevs with a non-nil
system-type property are called “system” abbrevs. They are
usually defined by modes or packages, instead of by the user, and are
treated specially in certain respects.
Because the symbols used for abbrevs are not interned in the usual obarray, they will never appear as the result of reading a Lisp expression; in fact, normally they are never used except by the code that handles abbrevs. Therefore, it is safe to use them in an extremely nonstandard way. See Creating Symbols.
For the user-level commands for abbrevs, see Abbrev Mode.