summaryrefslogtreecommitdiff
path: root/devdocs/elisp/abbrev-tables.html
blob: d4ab92ab77ff6e92481524b6a9cbfe3a4124f692 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 <h3 class="section">Abbrev Tables</h3>  <p>This section describes how to create and manipulate abbrev tables. </p> <dl> <dt id="make-abbrev-table">Function: <strong>make-abbrev-table</strong> <em>&amp;optional props</em>
</dt> <dd><p>This function creates and returns a new, empty abbrev table—an obarray containing no symbols. It is a vector filled with zeros. <var>props</var> is a property list that is applied to the new table (see <a href="abbrev-table-properties">Abbrev Table Properties</a>). </p></dd>
</dl> <dl> <dt id="abbrev-table-p">Function: <strong>abbrev-table-p</strong> <em>object</em>
</dt> <dd><p>This function returns a non-<code>nil</code> value if <var>object</var> is an abbrev table. </p></dd>
</dl> <dl> <dt id="clear-abbrev-table">Function: <strong>clear-abbrev-table</strong> <em>abbrev-table</em>
</dt> <dd><p>This function undefines all the abbrevs in <var>abbrev-table</var>, leaving it empty. </p></dd>
</dl> <dl> <dt id="copy-abbrev-table">Function: <strong>copy-abbrev-table</strong> <em>abbrev-table</em>
</dt> <dd><p>This function returns a copy of <var>abbrev-table</var>—a new abbrev table containing the same abbrev definitions. It does <em>not</em> copy any property lists; only the names, values, and functions. </p></dd>
</dl> <dl> <dt id="define-abbrev-table">Function: <strong>define-abbrev-table</strong> <em>tabname definitions &amp;optional docstring &amp;rest props</em>
</dt> <dd>
<p>This function defines <var>tabname</var> (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 <var>definitions</var>, a list of elements of the form <code>(<var>abbrevname</var> <var>expansion</var>
[<var>hook</var>] [<var>props</var>...])</code>. These elements are passed as arguments to <code>define-abbrev</code>. </p> <p>The optional string <var>docstring</var> is the documentation string of the variable <var>tabname</var>. The property list <var>props</var> is applied to the abbrev table (see <a href="abbrev-table-properties">Abbrev Table Properties</a>). </p> <p>If this function is called more than once for the same <var>tabname</var>, subsequent calls add the definitions in <var>definitions</var> to <var>tabname</var>, rather than overwriting the entire original contents. (A subsequent call only overrides abbrevs explicitly redefined or undefined in <var>definitions</var>.) </p>
</dd>
</dl> <dl> <dt id="abbrev-table-name-list">Variable: <strong>abbrev-table-name-list</strong>
</dt> <dd><p>This is a list of symbols whose values are abbrev tables. <code>define-abbrev-table</code> adds the new abbrev table name to this list. </p></dd>
</dl> <dl> <dt id="insert-abbrev-table-description">Function: <strong>insert-abbrev-table-description</strong> <em>name &amp;optional human</em>
</dt> <dd>
<p>This function inserts before point a description of the abbrev table named <var>name</var>. The argument <var>name</var> is a symbol whose value is an abbrev table. </p> <p>If <var>human</var> is non-<code>nil</code>, the description is human-oriented. System abbrevs are listed and identified as such. Otherwise the description is a Lisp expression—a call to <code>define-abbrev-table</code> that would define <var>name</var> as it is currently defined, but without the system abbrevs. (The mode or package using <var>name</var> is supposed to add these to <var>name</var> separately.) </p>
</dd>
</dl><div class="_attribution">
  <p class="_attribution-p">
    Copyright &copy; 1990-1996, 1998-2022 Free Software Foundation, Inc. <br>Licensed under the GNU GPL license.<br>
    <a href="https://www.gnu.org/software/emacs/manual/html_node/elisp/Abbrev-Tables.html" class="_attribution-link">https://www.gnu.org/software/emacs/manual/html_node/elisp/Abbrev-Tables.html</a>
  </p>
</div>