@c This is part of the Emacs manual.
-@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2012
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2015 Free Software
+@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Abbrevs
@chapter Abbrevs
words in the buffer that start with those letters. @xref{Dynamic
Abbrevs}.
- ``Hippie'' expansion generalizes abbreviation expansion.
+ A third kind, @dfn{hippie expansion}, generalizes abbreviation expansion.
@xref{Hippie Expand, , Hippie Expansion, autotype, Features for
Automatic Typing}.
@node Abbrev Concepts
@section Abbrev Concepts
- An @dfn{abbrev} is a word which has been defined to @dfn{expand} into
+ An @dfn{abbrev} is a word that has been defined to @dfn{expand} into
a specified @dfn{expansion}. When you insert a word-separator character
following the abbrev, that expands the abbrev---replacing the abbrev
with its expansion. For example, if @samp{foo} is defined as an abbrev
-expanding to @samp{find outer otter}, then you can insert @samp{find
-outer otter.} into the buffer by typing @kbd{f o o .}.
+expanding to @samp{find outer otter}, then typing @kbd{f o o .} will
+insert @samp{find outer otter.}.
@findex abbrev-mode
@cindex Abbrev mode
mode-specific definitions for different major modes. A mode-specific
definition for the current major mode overrides a global definition.
- You can define abbrevs interactively during the editing session. You
-can also save lists of abbrev definitions in files for use in later
-sessions. Some users keep extensive lists of abbrevs that they load
-in every session.
+ You can define abbrevs interactively during the editing session,
+irrespective of whether Abbrev mode is enabled. You can also save
+lists of abbrev definitions in files, which you can the reload for use
+in later sessions.
@node Defining Abbrevs
@section Defining Abbrevs
When Abbrev mode is enabled, an abbrev expands whenever it is
present in the buffer just before point and you type a self-inserting
-whitespace or punctuation character (@key{SPC}, comma, etc.@:). More
+whitespace or punctuation character (@key{SPC}, comma, etc.). More
precisely, any character that is not a word constituent expands an
abbrev, and any word-constituent character can be part of an abbrev.
The most common way to use an abbrev is to insert it and then insert a
special set of abbrev definitions for making several global replacements at
once. This command is effective even if Abbrev mode is not enabled.
- Expanding any abbrev runs @code{abbrev-expand-functions}, a special
-hook. Functions in this special hook can make arbitrary changes to
+ The function @code{expand-abbrev} performs the expansion by calling
+the function that @code{abbrev-expand-function} specifies. By
+changing this function you can make arbitrary changes to
the abbrev expansion. @xref{Abbrev Expansion,,, elisp, The Emacs Lisp
Reference Manual}.
that you can eliminate those that you don't use often. The string at
the end of the line is the expansion.
- Some abbrevs are marked with @samp{(sys)}. These ``system'' abbrevs
+ Some abbrevs are marked with @samp{(sys)}. These @dfn{system abbrevs}
(@pxref{Abbrevs,,, elisp, The Emacs Lisp Reference Manual}) are
pre-defined by various modes, and are not saved to your abbrev file.
-To disable a ``system'' abbrev, define an abbrev of the same name that
+To disable a system abbrev, define an abbrev of the same name that
expands to itself, and save it to your abbrev file.
@findex edit-abbrevs
@kbd{M-x edit-abbrevs} allows you to add, change or kill abbrev
definitions by editing a list of them in an Emacs buffer. The list has
the same format described above. The buffer of abbrevs is called
-@samp{*Abbrevs*}, and is in Edit-Abbrevs mode. Type @kbd{C-c C-c} in
+@file{*Abbrevs*}, and is in Edit-Abbrevs mode. Type @kbd{C-c C-c} in
this buffer to install the abbrev definitions as specified in the
buffer---and delete any abbrev definitions not listed.
The command @code{edit-abbrevs} is actually the same as
-@code{list-abbrevs} except that it selects the buffer @samp{*Abbrevs*}
+@code{list-abbrevs} except that it selects the buffer @file{*Abbrevs*}
whereas @code{list-abbrevs} merely displays it in another window.
@node Saving Abbrevs