39.3 Сохранение аббревиатур в файлах

Файл сохранённых определений аббревиатур фактически представляет собой файл с кодом Lisp. Аббревиатуры сохраняются в виде программы на Lisp, которая определяет те же таблицы аббревиатур с тем же содержимым. Поэтому вы можете загрузить этот файл с помощью load (см. Как программы выполняют загрузку). Однако функция quietly-read-abbrev-file предоставляется как более удобный интерфейс. Emacs автоматически вызывает эту функцию при запуске.

Пользовательские средства, такие как save-some-buffers, могут автоматически сохранять аббревиатуры в файл под управлением переменных, описанных здесь.

Пользовательская опция: abbrev-file-name

Это имя файла по умолчанию для чтения и сохранения аббревиатур. По умолчанию Emacs ищет файл ~/.emacs.d/abbrev_defs, а если он не найден — ~/.abbrev_defs; если ни один из файлов не существует, Emacs создаст ~/.emacs.d/abbrev_defs.

Функция: quietly-read-abbrev-file &optional filename

Эта функция читает определения аббревиатур из файла с именем filename, ранее записанного с помощью write-abbrev-file. Если filename опущен или равен nil, используется файл, указанный в abbrev-file-name.

Как следует из названия, эта функция не выводит никаких сообщений.

Пользовательская опция: save-abbrevs

Ненулевое значение save-abbrevs означает, что Emacs должен предлагать сохранять аббревиатуры (если они были изменены) при сохранении файлов. Если значение равно silently, Emacs сохраняет аббревиатуры без запроса пользователя. abbrev-file-name задаёт файл для сохранения аббревиатур. Значение по умолчанию — t.

Переменная: abbrevs-changed

Эта переменная устанавливается в ненулевое значение при определении или изменении любых аббревиатур (кроме системных). Это служит флагом для различных команд Emacs, чтобы предлагать сохранить ваши аббревиатуры.

Команда: write-abbrev-file &optional filename

Сохраняет все определения аббревиатур (кроме системных) для всех таблиц аббревиатур, перечисленных в abbrev-table-name-list, в файл filename в виде программы на Lisp, которая при загрузке заново определит те же аббревиатуры. Таблицы, в которых нет аббревиатур для сохранения, опускаются. Если filename равен nil или опущен, используется abbrev-file-name. Эта функция возвращает nil.