Go to the first, previous, next, last section, table of contents.


Summary: Sequence of Actions at Start Up

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 that is listed.
  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 the file `~/.emacs', unless `-q' or `-batch' was specified on the command line. The `-u' option can specify another user name 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 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. See section 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 `.emacs' file:

(setq inhibit-startup-echo-area-message
      "your-login-name")

Emacs explicitly checks for an expression as shown above in your `.emacs' 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 `.emacs' file will not inhibit the message for someone else.


Go to the first, previous, next, last section, table of contents.