This section describes how to create and manipulate abbrev tables.
function make-abbrev-table \&optional props
This function creates and returns a new, empty abbrev table—an obarray containing no symbols. It is a vector filled with zeros.
props is a property list that is applied to the new table (see Abbrev Table Properties).
function abbrev-table-p object
This function returns a non-
nil value if
object is an abbrev table.
function clear-abbrev-table abbrev-table
This function undefines all the abbrevs in
abbrev-table, leaving it empty.
function copy-abbrev-table abbrev-table
This function returns a copy of
abbrev-table—a new abbrev table containing the same abbrev definitions. It does not copy any property lists; only the names, values, and functions.
function define-abbrev-table tabname definitions \&optional docstring \&rest props
This function defines
tabname (a symbol) as an abbrev table name, i.e., as a variable whose value is an abbrev table. It defines abbrevs in the table according to
definitions, a list of elements of the form
(abbrevname expansion [hook] [props...]). These elements are passed as arguments to
The optional string
docstring is the documentation string of the variable
tabname. The property list
props is applied to the abbrev table (see Abbrev Table Properties).
If this function is called more than once for the same
tabname, subsequent calls add the definitions in
tabname, rather than overwriting the entire original contents. (A subsequent call only overrides abbrevs explicitly redefined or undefined in
This is a list of symbols whose values are abbrev tables.
define-abbrev-table adds the new abbrev table name to this list.
function insert-abbrev-table-description name \&optional human
This function inserts before point a description of the abbrev table named
name. The argument
name is a symbol whose value is an abbrev table.
human is non-
nil, the description is human-oriented. System abbrevs are listed and identified as such. Otherwise the description is a Lisp expression—a call to
define-abbrev-table that would define
name as it is currently defined, but without the system abbrevs. (The mode or package using
name is supposed to add these to