Summary: Sequence of Actions at Startup
---------------------------------------
The order of operations performed (in `startup.el') by Emacs when it
is started up is as follows:
1. It adds subdirectories to `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 these will be
scanned in their turn. The files `subdirs.el' are normally
generated automatically by Emacs installation.
2. It sets the language environment and the terminal coding system,
if requested by environment variables such as `LANG'.
3. It loads the initialization library for the window system, if you
are using a window system. This library's name is
`term/WINDOWSYSTEM-win.el'.
4. It processes the initial options. (Some of them are handled even
earlier than this.)
5. It initializes the window frame and faces, if appropriate.
6. It runs the normal hook `before-init-hook'.
7. It loads the library `site-start', unless the option
`-no-site-file' was specified. The library's file name is usually
`site-start.el'.
8. It loads your init file (usually `~/.emacs'), unless `-q',
`-no-init-file', or `-batch' was specified on the command line.
The `-u' option can specify another user whose home directory
should be used instead of `~'.
9. It loads the library `default', unless `inhibit-default-init' is
non-`nil'. (This is not done in `-batch' mode or if `-q' was
specified on the command line.) The library's file name is
usually `default.el'.
10. It runs the normal hook `after-init-hook'.
11. It sets the major mode according to `initial-major-mode', provided
the buffer `*scratch*' is still current and still in Fundamental
mode.
12. It loads the terminal-specific Lisp file, if any, except when in
batch mode or using a window system.
13. It displays the initial echo area message, unless you have
suppressed that with `inhibit-startup-echo-area-message'.
14. It processes the action arguments from the command line.
15. It runs `emacs-startup-hook' and then `term-setup-hook'.
16. It calls `frame-notice-user-settings', which modifies the
parameters of the selected frame according to whatever the init
files specify.
17. It runs `window-setup-hook'. Note:Window Systems.
18. It displays copyleft, nonwarranty, and basic use information,
provided there were no remaining command-line arguments (a few
steps above), the value of `inhibit-startup-message' is `nil', and
the buffer is still empty.
- User Option: inhibit-startup-message
This variable inhibits the initial startup messages (the
nonwarranty, etc.). If it is non-`nil', then the messages are not
printed.
This variable exists so you can set it in your personal init file,
once you are familiar with the contents of the startup message.
Do not set this variable in the init file of a new user, or in a
way that affects more than one user, because that would prevent
new users from receiving the information they are supposed to see.
- User Option: inhibit-startup-echo-area-message
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-message' to 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.