При запуске Emacs выполняет следующие операции
(см. normal-top-level в startup.el):
load-path, запуская файл с именем
subdirs.el в каждом каталоге из списка. Обычно этот файл
добавляет подкаталоги каталога в список, и они, в свою очередь,
сканируются. Файлы subdirs.el обычно генерируются
автоматически при установке Emacs.
load-path. Этот файл предназначен для регистрации методов
ввода. Поиск выполняется только для личных файлов leim-list.el,
которые вы могли создать; каталоги, содержащие стандартные библиотеки
Emacs, пропускаются (они должны содержать только один файл
leim-list.el, который скомпилирован в исполняемый файл Emacs).
before-init-time в значение
current-time (см. Время суток). Также устанавливает
after-init-time в nil, что служит для Lisp-программ
сигналом о том, что Emacs инициализируется.
LANG.
package-activate-all для активации любого
установленного дополнительного пакета Emacs Lisp. См. Основы упаковки. Однако Emacs не активирует пакеты, если
package-enable-at-startup равен nil или если он запущен
с одним из параметров ‘-q’, ‘-Q’ или ‘--batch’. Чтобы
активировать пакеты в последнем случае, package-activate-all
следует вызывать явно (например, через параметр ‘--funcall’).
initial-window-system (см. initial-window-system). Функция инициализации,
window-system-initialization, является обобщённой функцией
(см. Обобщённые функции), конкретная реализация которой отличается
для каждой поддерживаемой оконной системы. Если значение
initial-window-system равно windowsystem, то
соответствующая реализация функции инициализации определена
в файле term/windowsystem-win.el. Этот файл должен
быть скомпилирован в исполняемый файл Emacs при его сборке.
before-init-hook.
initial-frame-alist и default-frame-alist
(см. Начальные параметры фрейма) для графического фрейма, вызывая
функцию window-system-initialization для этой оконной системы.
Это не выполняется в пакетном (неинтерактивном) режиме или в режиме демона.
custom-reevaluate-setting для повторной инициализации
элементов списка custom-delayed-init-variables. Это любые
предварительно загруженные пользовательские параметры, значение по умолчанию
которых зависит от контекста выполнения, а не сборки.
См. custom-initialize-delay.
inhibit-default-init не равен nil, а также если были
указаны параметры ‘-q’, ‘-Q’ или ‘--batch’.
abbrev-file-name, если этот файл существует и может быть прочитан
(см. abbrev-file-name). Это не делается, если был
указан параметр ‘--batch’.
after-init-time в значение
current-time. Ранее эта переменная была установлена в nil;
установка её в текущее время сигнализирует, что фаза инициализации
завершена, и вместе с before-init-time позволяет измерить,
сколько времени это заняло.
after-init-hook и
delayed-warnings-hook. Последний показывает любые предупреждения,
выданные во время предыдущих этапов запуска, которые автоматически откладываются.
initial-major-mode.
tty-setup-hook. Это не выполняется в режиме
--batch и если term-file-prefix равен nil.
inhibit-startup-echo-area-message.
--batch.
(substitute-command-keys initial-scratch-message) в этот буфер.
initial-buffer-choice является строкой, посещает файл (или
каталог) с этим именем. Если это функция, вызывает функцию
без аргументов и выбирает буфер, который она возвращает. Если в качестве
аргумента командной строки передан один файл, этот файл посещается и его
буфер отображается вместе с initial-buffer-choice. Если передано
более одного файла, все файлы посещаются, и буфер *Список
буферов* отображается вместе с initial-buffer-choice.
emacs-startup-hook.
frame-notice-user-settings, которая изменяет
параметры выбранного фрейма в соответствии с тем, что задано в
файлах инициализации.
window-setup-hook. Единственное отличие между этим
хуком и emacs-startup-hook состоит в том, что этот запускается после
упомянутых выше изменений параметров фрейма.
inhibit-startup-screen или initial-buffer-choice
не равны nil, или если были указаны параметры командной строки
‘--no-splash’ или ‘-Q’.
server-start.
(В системах POSIX, если был запрошен фоновый демон, он затем
отсоединяется от управляющего терминала.) См. Сервер
Emacs в Руководстве GNU Emacs.
emacs-session-restore, передавая в качестве аргумента идентификатор
предыдущей сессии. См. Управление сессиями.
Следующие параметры влияют на некоторые аспекты последовательности запуска.
Если эта переменная не равна nil, она запрещает экран запуска. В
этом случае Emacs обычно отображает буфер *scratch*, но
см. initial-buffer-choice ниже.
Не устанавливайте эту переменную в файле инициализации нового пользователя или так, чтобы это затрагивало более одного пользователя, так как это помешает новым пользователям получить информацию об авторских правах и основах использования Emacs.
inhibit-startup-message и inhibit-splash-screen являются
псевдонимами этой переменной.
Если не равен nil, эта переменная является строкой, задающей файл
или каталог, который Emacs должен отобразить после запуска, вместо
экрана запуска.
Если её значение является функцией, Emacs вызывает эту функцию, которая
должна вернуть буфер, который затем отображается.
Если её значение равно t, Emacs отображает буфер *scratch*.
Эта переменная управляет отображением начального сообщения в области эхо. Вы можете подавить начальное сообщение в области эхо, добавив в свой файл инициализации текст следующего вида:
(setq inhibit-startup-echo-area-message
"ваше-имя-пользователя")
Emacs явно проверяет наличие выражения, показанного выше, в вашем файле
инициализации; ваше имя пользователя должно присутствовать в выражении как
строковая константа Lisp. Вы также можете использовать интерфейс Customize.
Другие способы установки inhibit-startup-echo-area-message в то же
значение не подавляют начальное сообщение. Таким образом, вы можете легко
подавить сообщение для себя, если хотите, но бездумное копирование вашего
файла инициализации не подавит сообщение для кого-то другого.
Если эта переменная не равна nil, она должна быть строкой, которая
рассматривается как документация для вставки в буфер *scratch* при
запуске Emacs или при его повторном создании. Если она равна
nil, буфер *scratch* пуст.
Следующие параметры командной строки влияют на некоторые аспекты последовательности запуска. См. Начальные параметры в Руководстве GNU Emacs.
--no-splashНе отображать заставку.
--batchЗапуск без интерактивного терминала. См. Пакетный режим.
--daemon--bg-daemon--fg-daemonНе инициализировать дисплей; просто запустить сервер. («Фоновый» демон автоматически запускается в фоне.)
--no-init-file-qНе загружать ни файл инициализации, ни библиотеку default.
--no-site-fileНе загружать библиотеку site-start.
--quick-QЭквивалентно ‘-q --no-site-file --no-splash’.
--init-directoryУказать каталог для поиска файлов инициализации Emacs.