C.2 Initial Options
The initial options specify parameters for the Emacs session. This
section describes the more general initial options; some other options
specifically related to the X Window System appear in the following
Some initial options affect the loading of the initialization file.
Normally, Emacs first loads site-start.el if it exists, then
your own initialization file if it exists, and finally the default
initialization file default.el if it exists (see Init File). Certain options prevent loading of some of these files or
substitute other files for them.
- ‘-chdir directory’
- Change to directory before doing anything else. This is mainly used
by session management in X so that Emacs starts in the same directory as it
stopped. This makes desktop saving and restoring easier.
- ‘-t device’
- Use device as the device for terminal input and output. This
option implies ‘--no-window-system’.
- ‘-d display’
- Use the X Window System and use the display named display to open
the initial Emacs frame. See Display X, for more details.
- Don't communicate directly with the window system, disregarding the
DISPLAY environment variable even if it is set. This means that
Emacs uses the terminal from which it was launched for all its display
- Run Emacs in batch mode. Batch mode is used for running
programs written in Emacs Lisp from shell scripts, makefiles, and so
on. To invoke a Lisp program, use the ‘-batch’ option in
conjunction with one or more of ‘-l’, ‘-f’ or ‘--eval’
(see Action Arguments). See Command Example, for an example.
In batch mode, Emacs does not display the text being edited, and the
standard terminal interrupt characters such as C-z and C-c
have their usual effect. Emacs functions that normally print a
message in the echo area will print to either the standard output
stdout) or the standard error stream (
instead. (To be precise, functions like
print print to
error print to
stderr.) Functions that normally read
keyboard input from the minibuffer take their input from the
terminal's standard input stream (
‘--batch’ implies ‘-q’ (do not load an initialization file),
but site-start.el is loaded nonetheless. It also causes Emacs
to exit after processing all the command options. In addition, it
disables auto-saving except in buffers for which auto-saving is
- ‘--script file’
- Run Emacs in batch mode, like ‘--batch’, and then read and
execute the Lisp code in file.
The normal use of this option is in executable script files that run
Emacs. They can start with this text on the first line
which will invoke Emacs with ‘--script’ and supply the name of
the script file as file. Emacs Lisp then treats the ‘#!’
on this first line as a comment delimiter.
- Do not load any initialization file (see Init File). When Emacs
is invoked with this option, the Customize facility does not allow
options to be saved (see Easy Customization). This option does
not disable loading site-start.el.
- Do not load site-start.el (see Init File). The ‘-Q’
option does this too, but other options like ‘-q’ do not.
- Do not include the site-lisp directories in
(see Init File). The ‘-Q’ option does this too.
- Do not display a startup screen. You can also achieve this effect by
setting the variable
inhibit-startup-screen to non-
in your initialization file (see Entering Emacs).
- Start emacs with minimum customizations. This is similar to using ‘-q’,
‘--no-site-file’, ‘--no-site-lisp’, and ‘--no-splash’
together. This also stops Emacs from processing X resources by
t (see Resources).
- Start Emacs as a daemon—after Emacs starts up, it starts the Emacs
server and disconnects from the terminal without opening any frames.
You can then use the emacsclient command to connect to Emacs
for editing. See Emacs Server, for information about using Emacs
as a daemon.
- Start emacs in background as a daemon, and use SERVER-NAME as
the server name.
- Do not reload any saved desktop. See Saving Emacs Sessions.
- ‘-u user’
- Load user's initialization file instead of your
- Enable the Emacs Lisp debugger for errors in the init file.
See Entering the Debugger on an Error.