When Emacs is started up, it performs the following operations (which are defined in startup.el):
load-path, by running the file named
subdirs.el in each directory in the list. Normally, this file
adds the directory's subdirectories to the list, and those are scanned
in their turn. The files subdirs.el are normally generated
automatically when Emacs is installed.
before-init-time to the value of
current-time (see Time of Day). It also sets
after-init-time to nil, which signals to Lisp programs
that Emacs is being initialized.
initial-window-system (see initial-window-system). This library's name is
term/windowsystem-win.el, where windowsystem is the
value of initial-window-system. From that library, it calls
the appropriate initialization function. The initialization function
for each supported window system is specified by
window-system-initialization-alist.
LANG.
before-init-hook.
inhibit-default-init is non-nil, nor if the options
‘-q’, ‘-Q’, or ‘--batch’ were specified.
abbrev-file-name, if that file exists and can be read
(see abbrev-file-name). This is not done if the
option ‘--batch’ was specified.
after-init-time to the value of
current-time. This variable was set to nil earlier;
setting it to the current time signals that the initialization phase
is over, and, together with before-init-time, provides the
measurement of how long it took.
after-init-hook.
initial-major-mode.
term-file-prefix (see Terminal-Specific). This is not done
in --batch mode, nor if term-file-prefix is nil.
inhibit-startup-echo-area-message.
--batch was specified.
initial-buffer-choice is a string, it visits the file with
that name. Furthermore, if the ‘*scratch*’ buffer exists and is
empty, it inserts initial-scratch-message into that buffer.
emacs-startup-hook and then term-setup-hook.
frame-notice-user-settings, which modifies the
parameters of the selected frame according to whatever the init files
specify.
window-setup-hook. See Window Systems.
--daemon was specified, it calls
server-start and detaches from the controlling terminal.
See Emacs Server.
initial-buffer-choice or
inhibit-startup-screen are nil, nor if the
‘--no-splash’ or ‘-Q’ command-line options were specified.
emacs-session-restore passing it as argument the ID of the
previous session. See Session Management.
This variable, if non-
nil, inhibits the startup screen. In that case, Emacs typically displays the ‘*scratch*’ buffer; but seeinitial-buffer-choice, below.Do not set this variable in the init file of a new user, or in a way that affects more than one user, as that would prevent new users from receiving information about copyleft and basic Emacs usage.
inhibit-startup-messageandinhibit-splash-screenare aliases for this variable.
This variable, if non-
nil, determines a file or buffer for Emacs to display after starting up, instead of the startup screen. If its value ist, Emacs displays the ‘*scratch*’ buffer. If its value is a string, that specifies the name of a file for Emacs to visit.
This variable controls the display of the startup echo area message. You can suppress the startup echo area message by adding text with this form to your init file:
(setq inhibit-startup-echo-area-message "your-login-name")Emacs explicitly checks for an expression as shown above in your init file; your login name must appear in the expression as a Lisp string constant. Other methods of setting
inhibit-startup-echo-area-messageto the same value do not inhibit the startup message. This way, you can easily inhibit the message for yourself if you wish, but thoughtless copying of your init file will not inhibit the message for someone else.
This variable, if non-
nil, should be a string, which is inserted into the ‘*scratch*’ buffer when Emacs starts up. If it isnil, the ‘*scratch*’ buffer is empty.