36.3 Saving Abbrevs in Files
A file of saved abbrev definitions is actually a file of Lisp code. The abbrevs are saved in the form of a Lisp program to define the same abbrev tables with the same contents. Therefore, you can load the file with load
(see How Programs Do Loading). However, the function quietly-read-abbrev-file
is provided as a more convenient interface. Emacs automatically calls this function at startup.
User-level facilities such as save-some-buffers
can save abbrevs in a file automatically, under the control of variables described here.
user option
abbrev-file-name​
This is the default file name for reading and saving abbrevs. By default, Emacs will look for ~/.emacs.d/abbrev_defs
, and, if not found, for ~/.abbrev_defs
; if neither file exists, Emacs will create ~/.emacs.d/abbrev_defs
.
function
quietly-read-abbrev-file \&optional filename​
This function reads abbrev definitions from a file named filename
, previously written with write-abbrev-file
. If filename
is omitted or nil
, the file specified in abbrev-file-name
is used.
As the name implies, this function does not display any messages.
user option
save-abbrevs​
A non-nil
value for save-abbrevs
means that Emacs should offer to save abbrevs (if any have changed) when files are saved. If the value is silently
, Emacs saves the abbrevs without asking the user. abbrev-file-name
specifies the file to save the abbrevs in. The default value is t
.
variable
abbrevs-changed​
This variable is set non-nil
by defining or altering any abbrevs (except system abbrevs). This serves as a flag for various Emacs commands to offer to save your abbrevs.
command
write-abbrev-file \&optional filename​
Save all abbrev definitions (except system abbrevs), for all abbrev tables listed in abbrev-table-name-list
, in the file filename
, in the form of a Lisp program that when loaded will define the same abbrevs. Tables that do not have any abbrevs to save are omitted. If filename
is nil
or omitted, abbrev-file-name
is used. This function returns nil
.