Однако следует отметить, что только Emacs 22+ загружает ~/.emacs.d/init.el
качестве альтернативного файла инициализации для каждого пользователя. В качестве новой, но совместимой с нисходящим компонентом приоритета ~/.emacs
. Это организовано в lisp/startup.el
.
После запуска переменная user-init-file
содержит полный путь к файлу инициализации, например, /home/me/.emacs.elc
или C:\Users\Me\.emacs.d\init.el
и т.д. Чтобы просмотреть его значение в типе буфера *scratch*
(insert user-init-file)
за которым следует C-x C-e
.
~/.emacs.d/
фактически является стандартным местом для дополнительных файлов для каждого пользователя. Путь определяется переменной Emacs user-emacs-directory
. В Windows этот путь зависит от переменной HOME
(не USERPROFILE
). Например, если для HOME
установлено значение C:\
, это будет C:\.emacs.d
. Когда я запускаю Emacs переносимо, я использую это поведение, используя пакетный файл, который устанавливает HOME
в каталог на жестком диске.
В этом каталоге есть не только файлы Lisp! Например, функция автосохранения по умолчанию сохраняет любой отредактированный файл в ~/.emacs.d/auto-save-list/
(см. Переменную auto-save-list-file-prefix
). Это вдохновило меня на сохранение резервных копий файлов там же:
(defvar --user-backup-directory (concat user-emacs-directory "backups"))
(if (not (file-exists-p --user-backup-directory))
(make-directory --user-backup-directory t))
(setq backup-directory-alist `(("." . ,--user-backup-directory)))
(setq make-backup-files t)
До Emacs 22 у меня также был каталог ~/elisp
для моих личных файлов Lisp. Сейчас пользуюсь
(pushnew (expand-file-name "~/.emacs.d/elisp") load-path)
как советовано здесь.
Так что ~/.emacs.d
на самом деле довольно полезен, хотя я нахожу идею ~/.emacs.d/init.el
сомнительной. ~/.emacs.d/
является стандартным местом для дополнительных файлов для каждого пользователя. Разве не имеет смысла, когда Emacs читает ~/.emacs.d/init.el
дополнение к ~/.emacs.el
?