elisp: Abbrevs
35 Abbrevs and Abbrev Expansion
*******************************
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. Creating
Symbols, for information about obarrays. Each abbreviation is
represented by a symbol in the obarray. The symbol’s name is the
abbreviation; its value is the expansion; its function definition is the
hook function for performing the expansion (Defining Abbrevs);
and its property list cell contains various additional properties,
including the use count and the number of times the abbreviation has
been expanded (Abbrev Properties).
Certain abbrevs, called “system abbrevs”, are defined by a major mode
instead of the user. A system abbrev is identified by its non-‘nil’
‘:system’ property (Abbrev Properties). When abbrevs are saved
to an abbrev file, system abbrevs are omitted. Abbrev Files.
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 a
nonstandard way.
If the minor mode Abbrev mode is enabled, the buffer-local variable
‘abbrev-mode’ is non-‘nil’, and abbrevs are automatically expanded in
the buffer. For the user-level commands for abbrevs, see Abbrev
Mode (emacs)Abbrevs.
Menu