]> code.delx.au - gnu-emacs/blobdiff - man/abbrevs.texi
(url-current-object, url-package-name, url-package-version): Add defvars.
[gnu-emacs] / man / abbrevs.texi
index e59110e239581d4d73e29eef0fedab71fae573be..2272b2ba133a6cd18b34ffe395edbd1992faf701 100644 (file)
@@ -1,7 +1,8 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003,
+@c   2004, 2005 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
-@node Abbrevs, Picture, Building, Top
+@node Abbrevs, Picture, Maintaining, Top
 @chapter Abbrevs
 @cindex abbrevs
 @cindex expansion (of abbrevs)
@@ -82,6 +83,10 @@ Define a word in the buffer as an abbrev (@code{inverse-add-global-abbrev}).
 @item C-x a i l
 Define a word in the buffer as a mode-specific abbrev
 (@code{inverse-add-mode-abbrev}).
+@item M-x define-global-abbrev @key{RET} @var{abbrev} @key{RET} @var{exp} @key{RET}
+Define @var{abbrev} as an abbrev expanding into @var{exp}.
+@item M-x define-mode-abbrev @key{RET} @var{abbrev} @key{RET} @var{exp} @key{RET}
+Define @var{abbrev} as a mode-specific abbrev expanding into @var{exp}.
 @item M-x kill-all-abbrevs
 This command discards all abbrev definitions currently in effect,
 leaving a blank slate.
@@ -121,9 +126,16 @@ l}.  These commands are called ``inverse'' because they invert the
 meaning of the two text strings they use (one from the buffer and one
 read with the minibuffer).
 
+@findex define-mode-abbrev
+@findex define-global-abbrev
+  You can define an abbrev without inserting either the abbrev or its
+expansion in the buffer using the command @code{define-global-abbrev}.
+It reads two arguments---the abbrev, and its expansion.  The command
+@code{define-mode-abbrev} does likewise for a mode-specific abbrev.
+
   To change the definition of an abbrev, just define a new definition.
 When the abbrev has a prior definition, the abbrev definition commands
-ask for confirmation for replacing it.
+ask for confirmation before replacing it.
 
   To remove an abbrev definition, give a negative argument to the abbrev
 definition command: @kbd{C-u - C-x a g} or @kbd{C-u - C-x a l}.  The
@@ -142,14 +154,14 @@ point and you type a self-inserting 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 punctuation character to expand it.
+insert it and then insert a punctuation or whitespace character to expand it.
 
 @vindex abbrev-all-caps
   Abbrev expansion preserves case; thus, @samp{foo} expands into @samp{find
 outer otter}; @samp{Foo} into @samp{Find outer otter}, and @samp{FOO} into
 @samp{FIND OUTER OTTER} or @samp{Find Outer Otter} according to the
-variable @code{abbrev-all-caps} (a non-@code{nil} value chooses the first
-of the two expansions).
+variable @code{abbrev-all-caps} (setting it non-@code{nil} specifies
+@samp{FIND OUTER OTTER}).
 
   These commands are used to control abbrev expansion:
 
@@ -212,7 +224,7 @@ once.  This command is effective even if Abbrev mode is not enabled.
 
 @table @kbd
 @item M-x list-abbrevs
-Display a list of all abbrev definitions.  With numeric argument, list
+Display a list of all abbrev definitions.  With numeric argument, list
 only local abbrevs.
 @item M-x edit-abbrevs
 Edit a list of abbrevs; you can add, alter or remove definitions.
@@ -286,26 +298,29 @@ that, when executed, define the same abbrevs that you currently have.
 @findex read-abbrev-file
 @findex quietly-read-abbrev-file
 @vindex abbrev-file-name
-  @kbd{M-x read-abbrev-file} reads a file name using the minibuffer and
-then reads the file, defining abbrevs according to the contents of the
-file.  @kbd{M-x quietly-read-abbrev-file} is the same except that it
-does not display a message in the echo area saying that it is doing its
-work; it is actually useful primarily in the @file{.emacs} file.  If an
-empty argument is given to either of these functions, they use the file
-name specified in the variable @code{abbrev-file-name}, which is by
-default @code{"~/.abbrev_defs"}.
+  @kbd{M-x read-abbrev-file} reads a file name using the minibuffer
+and then reads the file, defining abbrevs according to the contents of
+the file.  The function @code{quietly-read-abbrev-file} is similar
+except that it does not display a message in the echo area; you cannot
+invoke it interactively, and it is used primarily in the @file{.emacs}
+file.  If either of these functions is called with @code{nil} as the
+argument, it uses the file name specified in the variable
+@code{abbrev-file-name}, which is by default @code{"~/.abbrev_defs"}.
+That file is your standard abbrev definition file, and Emacs loads
+abbrevs from it automatically when it starts up.
 
 @vindex save-abbrevs
-  Emacs will offer to save abbrevs automatically if you have changed any of
-them, whenever it offers to save all files (for @kbd{C-x s} or @kbd{C-x
-C-c}).  This feature can be inhibited by setting the variable
-@code{save-abbrevs} to @code{nil}.
+  Emacs will offer to save abbrevs automatically if you have changed
+any of them, whenever it offers to save all files (for @kbd{C-x s} or
+@kbd{C-x C-c}).  It saves them in the file specified by
+@code{abbrev-file-name}.  This feature can be inhibited by setting the
+variable @code{save-abbrevs} to @code{nil}.
 
 @findex insert-abbrevs
 @findex define-abbrevs
   The commands @kbd{M-x insert-abbrevs} and @kbd{M-x define-abbrevs} are
 similar to the previous commands but work on text in an Emacs buffer.
-@kbd{M-x insert-abbrevs} inserts text into the current buffer before point,
+@kbd{M-x insert-abbrevs} inserts text into the current buffer after point,
 describing all current abbrev definitions; @kbd{M-x define-abbrevs} parses
 the entire current buffer and defines abbrevs accordingly.@refill
 
@@ -356,10 +371,12 @@ expressions.  If a buffer's name matches any of these regular
 expressions, dynamic abbrev expansion skips that buffer.
 
   A negative argument to @kbd{M-/}, as in @kbd{C-u - M-/}, says to
-search first for expansions after point, and second for expansions
-before point.  If you repeat the @kbd{M-/} to look for another
-expansion, do not specify an argument.  This tries all the expansions
-after point and then the expansions before point.
+search first for expansions after point, then other buffers, and
+consider expansions before point only as a last resort.
+
+  If you repeat the @kbd{M-/} to look for another expansion, do not
+specify an argument.  This tries all the expansions after point and
+then the expansions before point.
 
   After you have expanded a dynamic abbrev, you can copy additional
 words that follow the expansion in its original context.  Simply type
@@ -387,8 +404,8 @@ you are expanding.
 @vindex dabbrev-case-fold-search
   This feature is controlled by the variable
 @code{dabbrev-case-fold-search}.  If it is @code{t}, case is ignored in
-this search; if @code{nil}, the word and the expansion must match in
-case.  If the value of @code{dabbrev-case-fold-search} is
+this search; if it is @code{nil}, the word and the expansion must match
+in case.  If the value of @code{dabbrev-case-fold-search} is
 @code{case-fold-search}, which is true by default, then the variable
 @code{case-fold-search} controls whether to ignore case while searching
 for expansions.
@@ -401,7 +418,7 @@ pattern.
 @vindex dabbrev-case-fold-search
   The variable @code{dabbrev-case-replace} controls whether to preserve
 the case pattern of the abbrev.  If it is @code{t}, the abbrev's case
-pattern is preserved in most cases; if @code{nil}, the expansion is
+pattern is preserved in most cases; if it is @code{nil}, the expansion is
 always copied verbatim.  If the value of @code{dabbrev-case-replace} is
 @code{case-replace}, which is true by default, then the variable
 @code{case-replace} controls whether to copy the expansion verbatim.
@@ -429,3 +446,7 @@ customize dynamic abbreviation to handle optional prefixes by setting
 the variable @code{dabbrev-abbrev-skip-leading-regexp}.  Its value
 should be a regular expression that matches the optional prefix that
 dynamic abbreviation should ignore.
+
+@ignore
+   arch-tag: 638e0079-9540-48ec-9166-414083e16445
+@end ignore