Spec-Zone.ru › Elisp

Файл инициализации

При запуске Emacs обычно происходит попытка загрузить ваш файл инициализации. Это либо файл с именем .emacs или .emacs.el в вашем домашнем каталоге, либо файл с именем init.el в подкаталоге с именем .emacs.d в вашем домашнем каталоге.

Командные переключатели ‘-q’, ‘-Q’ и ‘-u’ управляют тем, где и как найти файл инициализации; ‘-q’ (и более жёсткий ‘-Q’) означает, что файл инициализации не должен загружаться, в то время как ‘-u user’ означает, что должен загрузиться файл инициализации пользователя user, а не ваш. См. Начало работы с Emacs в Справочнике по GNU Emacs. Если ни один из вариантов не указан, Emacs использует переменную среды LOGNAME, или переменную USER (на большинстве систем) или USERNAME (на системах MS), чтобы найти ваш домашний каталог и, следовательно, ваш файл инициализации; таким образом, даже если вы выполнили su, Emacs всё равно загрузит ваш собственный файл инициализации. Однако, если эти переменные среды отсутствуют, Emacs использует ваш идентификатор пользователя, чтобы найти ваш домашний каталог.

Emacs также пытается загрузить второй файл инициализации, называемый начальным файлом инициализации, если он существует. Это файл с именем early-init.el в вашем каталоге ~/.emacs.d. Разница между начальным файлом инициализации и обычным файлом инициализации заключается в том, что начальный файл инициализации загружается намного раньше во время процесса запуска, поэтому вы можете использовать его для настройки некоторых вещей, которые инициализируются до загрузки обычного файла инициализации. Например, вы можете настроить процесс инициализации системы пакетов, задав переменные, такие как package-load-list или package-enable-at-startup. См. Установка пакетов в Справочнике по GNU Emacs.

Установка Emacs может иметь файл инициализации по умолчанию, который представляет собой библиотеку Lisp с именем default.el. Emacs находит этот файл через стандартный путь поиска библиотек (см. Как программы выполняют загрузку). В дистрибутиве Emacs этот файл отсутствует; он предназначен для локальных настроек. Если файл инициализации по умолчанию существует, он загружается при каждом запуске Emacs. Однако ваш личный файл инициализации, если таковой имеется, загружается первым; если он задаёт inhibit-default-init на значение, отличное от nil, то Emacs не загружает файл default.el далее. В пакетном режиме или если вы указали ‘-q’ (или ‘-Q’), Emacs не загружает ни ваш личный файл инициализации, ни файл инициализации по умолчанию.

Ещё одним файлом для настройки сайта является site-start.el. Emacs загружает его перед файлом инициализации пользователя. Загрузку этого файла можно запретить с помощью опции ‘--no-site-file’.

Опция пользователя: site-run-file

Эта переменная задаёт файл настройки сайта, который должен загружаться перед файлом инициализации пользователя. Её нормальное значение равно "site-start". Единственный способ изменить его с реальным эффектом — сделать это до выгрузки Emacs.

См. Примеры файлов инициализации в Справочнике по GNU Emacs для примеров создания различных часто используемых настроек в вашем файле .emacs.

Опция пользователя: inhibit-default-init

Если эта переменная имеет ненулевое значение, она предотвращает загрузку файла библиотеки по умолчанию. Значение по умолчанию равно nil.

Переменная: before-init-hook

Этот обычный обработчик выполняется один раз сразу перед загрузкой всех файлов инициализации (site-start.el, ваш файл инициализации и default.el). (Единственный способ изменить его с реальным эффектом — перед выгрузкой Emacs.)

Переменная: after-init-hook

Этот обычный обработчик выполняется один раз сразу после загрузки всех файлов инициализации (site-start.el, ваш файл инициализации и default.el), перед загрузкой библиотеки, специфичной для терминала (если запуск осуществлен на текстовом терминале), и обработкой аргументов командной строки.

Переменная: emacs-startup-hook

Этот обычный обработчик выполняется один раз сразу после обработки аргументов командной строки. В пакетном режиме Emacs не выполняет этот обработчик.

Переменная: window-setup-hook

Этот обычный обработчик очень похож на emacs-startup-hook. Единственное различие состоит в том, что он выполняется немного позже, после установки параметров кадра. См. window-setup-hook.

Переменная: user-init-file

Эта переменная содержит абсолютный путь к файлу инициализации пользователя. Если загруженный фактический файл инициализации является скомпилированным файлом, например .emacs.elc, то значение относится к соответствующему исходному файлу.

Переменная: user-emacs-directory

Эта переменная содержит имя каталога по умолчанию Emacs. По умолчанию она равна ${XDG_CONFIG_HOME-'~/.config'}/emacs/, если этот каталог существует и ~/.emacs.d/ и ~/.emacs не существуют, в противном случае, равна ~/.emacs.d/ на всех платформах, кроме MS-DOS. Здесь ${XDG_CONFIG_HOME-'~/.config'} обозначает значение переменной среды XDG_CONFIG_HOME при её установке и ~/.config в противном случае. См. Как Emacs находит ваш файл инициализации в Справочнике по GNU Emacs.

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/Init-File.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API