Стандартные имена файлов
Иногда программе Emacs Lisp необходимо указать стандартное имя файла для определенного использования — обычно для хранения данных конфигурации, заданных текущим пользователем. Обычно такие файлы должны располагаться в каталоге, указанном в user-emacs-directory, который по умолчанию обычно является ~/.config/emacs/ или ~/.emacs.d/ (см. Как Emacs находит ваш файл инициализации в Руководстве GNU Emacs). Например, определения сокращений по умолчанию хранятся в ~/.config/emacs/abbrev_defs или ~/.emacs.d/abbrev_defs. Наиболее простой способ указать имя такого файла — использовать функцию locate-user-emacs-file.
- Функция: locate-user-emacs-file base-name &optional old-name
-
Эта функция возвращает абсолютное имя файла конфигурации или данных, специфичного для Emacs. Аргумент base-name должен быть относительным именем файла. Результат — абсолютное имя файла в каталоге, указанном в
user-emacs-directory; если этот каталог не существует, функция создаёт его.Если необязательный аргумент old-name не
nil, он указывает на файл в домашнем каталоге пользователя, ~/old-name. Если такой файл существует, результат — абсолютное имя этого файла, а не файла, указанного base-name. Этот аргумент предназначен для использования пакетами Emacs для обеспечения обратной совместимости. Например, до появленияuser-emacs-directory, файл сокращений находился в ~/.abbrev_defs. Вот определениеabbrev-file-name:(defcustom abbrev-file-name (locate-user-emacs-file "abbrev_defs" ".abbrev_defs") "Default name of file from which to read abbrevs." … :type 'file)
Функция более низкого уровня для стандартизации имён файлов, которую locate-user-emacs-file использует в качестве подпрограммы, — это convert-standard-filename.
- Функция: convert-standard-filename filename
-
Эта функция возвращает имя файла на основе filename, которое соответствует соглашениям текущей операционной системы.
В системах GNU и других системах, подобных POSIX, она просто возвращает filename. В других операционных системах она может применять специфические для системы соглашения об именах файлов; например, в MS-DOS эта функция выполняет различные изменения для соблюдения ограничений имён файлов MS-DOS, включая преобразование любого ведущего ‘.’ в ‘_’ и усечение до трёх символов после ‘.’.
Рекомендуемый способ использования этой функции — указать имя, соответствующее соглашениям систем GNU и Unix, и передать его в
convert-standard-filename.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Standard-File-Names.html