changeset 84228:8a39803abca7

Move here from ../../man
author Glenn Morris <rgm@gnu.org>
date Thu, 06 Sep 2007 04:44:42 +0000
parents 8c094978067d
children bb21f14d6ad2
files doc/emacs/cmdargs.texi
diffstat 1 files changed, 1263 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/emacs/cmdargs.texi	Thu Sep 06 04:44:42 2007 +0000
@@ -0,0 +1,1263 @@
+@c This is part of the Emacs manual.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
+@c   2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+@c See file emacs.texi for copying conditions.
+@node Emacs Invocation, X Resources, GNU Free Documentation License, Top
+@appendix Command Line Arguments for Emacs Invocation
+@cindex command line arguments
+@cindex arguments (command line)
+@cindex options (command line)
+@cindex switches (command line)
+@cindex startup (command line arguments)
+@cindex invocation (command line arguments)
+
+  GNU Emacs supports command line arguments to request various actions
+when invoking Emacs.  These are for compatibility with other editors and
+for sophisticated activities.  We don't recommend using them for
+ordinary editing.
+
+  Arguments starting with @samp{-} are @dfn{options}, and so is
+@samp{+@var{linenum}}.  All other arguments specify files to visit.
+Emacs visits the specified files while it starts up.  The last file
+name on your command line becomes the current buffer; the other files
+are also visited in other buffers.  If there are two files, they are
+both displayed; otherwise the last file is displayed along with a
+buffer list that shows what other buffers there are.  As with most
+programs, the special argument @samp{--} says that all subsequent
+arguments are file names, not options, even if they start with
+@samp{-}.
+
+  Emacs command options can specify many things, such as the size and
+position of the X window Emacs uses, its colors, and so on.  A few
+options support advanced usage, such as running Lisp functions on files
+in batch mode.  The sections of this chapter describe the available
+options, arranged according to their purpose.
+
+  There are two ways of writing options: the short forms that start with
+a single @samp{-}, and the long forms that start with @samp{--}.  For
+example, @samp{-d} is a short form and @samp{--display} is the
+corresponding long form.
+
+  The long forms with @samp{--} are easier to remember, but longer to
+type.  However, you don't have to spell out the whole option name; any
+unambiguous abbreviation is enough.  When a long option takes an
+argument, you can use either a space or an equal sign to separate the
+option name and the argument.  Thus, you can write either
+@samp{--display sugar-bombs:0.0} or @samp{--display=sugar-bombs:0.0}.
+We recommend an equal sign because it makes the relationship clearer,
+and the tables below always show an equal sign.
+
+@cindex initial options (command line)
+@cindex action options (command line)
+@vindex command-line-args
+  Most options specify how to initialize Emacs, or set parameters for
+the Emacs session.  We call them @dfn{initial options}.  A few options
+specify things to do: for example, load libraries, call functions, or
+terminate Emacs.  These are called @dfn{action options}.  These and file
+names together are called @dfn{action arguments}.  Emacs processes all
+the action arguments in the order they are written.  The @file{.emacs} file
+can access the values of the action arguments as the elements of a list in
+the variable @code{command-line-args}.
+
+
+
+@menu
+* Action Arguments::    Arguments to visit files, load libraries,
+                          and call functions.
+* Initial Options::     Arguments that take effect while starting Emacs.
+* Command Example::     Examples of using command line arguments.
+* Resume Arguments::    Specifying arguments when you resume a running Emacs.
+* Environment::         Environment variables that Emacs uses.
+* Display X::           Changing the default display and using remote login.
+* Font X::              Choosing a font for text, under X.
+* Colors::              Choosing display colors.
+* Window Size X::       Start-up window size, under X.
+* Borders X::           Internal and external borders, under X.
+* Title X::             Specifying the initial frame's title.
+* Icons X::             Choosing what sort of icon to use, under X.
+* Misc X::              Other display options.
+@end menu
+
+@node Action Arguments
+@appendixsec Action Arguments
+
+  Here is a table of the action arguments and options:
+
+@table @samp
+@item @var{file}
+@opindex --file
+@itemx --file=@var{file}
+@opindex --find-file
+@itemx --find-file=@var{file}
+@opindex --visit
+@itemx --visit=@var{file}
+@cindex visiting files, command-line argument
+@vindex inhibit-startup-buffer-menu
+Visit @var{file} using @code{find-file}.  @xref{Visiting}.
+If you visit several files at startup in this way, Emacs
+also displays a Buffer Menu buffer to show you what files it
+has visited.  You can inhibit that by setting @code{inhibit-startup-buffer-menu} to @code{t}.
+
+@item +@var{linenum} @var{file}
+@opindex +@var{linenum}
+Visit @var{file} using @code{find-file}, then go to line number
+@var{linenum} in it.
+
+@item +@var{linenum}:@var{columnnum} @var{file}
+Visit @var{file} using @code{find-file}, then go to line number
+@var{linenum} and put point at column number @var{columnnum}.
+
+@need 3000
+@item -l @var{file}
+@opindex -l
+@itemx --load=@var{file}
+@opindex --load
+@cindex loading Lisp libraries, command-line argument
+Load a Lisp library named @var{file} with the function @code{load}.
+@xref{Lisp Libraries}.  If @var{file} is not an absolute file name,
+the library can be found either in the current directory, or in the
+Emacs library search path as specified with @env{EMACSLOADPATH}
+(@pxref{General Variables}).
+
+@strong{Warning:} If previous command-line arguments have visited
+files, the current directory is the directory of the last file
+visited.
+
+@item -L @var{dir}
+@opindex -L
+@itemx --directory=@var{dir}
+@opindex --directory
+Add directory @var{dir} to the variable @code{load-path}.
+
+@item -f @var{function}
+@opindex -f
+@itemx --funcall=@var{function}
+@opindex --funcall
+@cindex call Lisp functions, command-line argument
+Call Lisp function @var{function}.  If it is an interactive function
+(a command), it reads the arguments interactively just as if you had
+called the same function with a key sequence.  Otherwise, it calls the
+function with no arguments.
+
+@item --eval=@var{expression}
+@opindex --eval
+@itemx --execute=@var{expression}
+@opindex --execute
+@cindex evaluate expression, command-line argument
+Evaluate Lisp expression @var{expression}.
+
+@item --insert=@var{file}
+@opindex --insert
+@cindex insert file contents, command-line argument
+Insert the contents of @var{file} into the current buffer.  This is like
+what @kbd{M-x insert-file} does.  @xref{Misc File Ops}.
+
+@item --kill
+@opindex --kill
+Exit from Emacs without asking for confirmation.
+
+@item --help
+@opindex --help
+Print a usage message listing all available options, then exit
+successfully.
+
+@item --version
+@opindex --version
+Print Emacs version, then exit successfully.
+@end table
+
+@node Initial Options
+@appendixsec 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
+sections.
+
+  Some initial options affect the loading of init files.  The normal
+actions of Emacs are to first load @file{site-start.el} if it exists,
+then your own init file @file{~/.emacs} if it exists, and finally
+@file{default.el} if it exists.  @xref{Init File}.  Certain options
+prevent loading of some of these files or substitute other files for
+them.
+
+@table @samp
+@item -t @var{device}
+@opindex -t
+@itemx --terminal=@var{device}
+@opindex --terminal
+@cindex device for Emacs terminal I/O
+Use @var{device} as the device for terminal input and output.
+@samp{--terminal} implies @samp{--no-window-system}.
+
+@item -d @var{display}
+@opindex -d
+@itemx --display=@var{display}
+@opindex --display
+@cindex display for Emacs frame
+Use the X Window System and use the display named @var{display} to open
+the initial Emacs frame.  @xref{Display X}, for more details.
+
+@item -nw
+@opindex -nw
+@itemx --no-window-system
+@opindex --no-window-system
+@cindex disable window system
+Don't communicate directly with the window system, disregarding the
+@env{DISPLAY} environment variable even if it is set.  This means that
+Emacs uses the terminal from which it was launched for all its display
+and input.
+
+@need 3000
+@cindex batch mode
+@item -batch
+@opindex --batch
+@itemx --batch
+Run Emacs in @dfn{batch mode}.  Batch mode is used for running
+programs written in Emacs Lisp from shell scripts, makefiles, and so
+on.  You should also use the @samp{-l}, @samp{-f} or @samp{--eval}
+option, to invoke a Lisp program to do batch processing.
+
+In batch mode, Emacs does not display the text being edited, and the
+standard terminal interrupt characters such as @kbd{C-z} and @kbd{C-c}
+continue to have their normal effect.  The functions @code{prin1},
+@code{princ} and @code{print} output to @code{stdout} instead of the
+echo area, while @code{message} and error messages output to
+@code{stderr}.  Functions that would normally read from the minibuffer
+take their input from @code{stdin} instead.
+
+@samp{--batch} implies @samp{-q} (do not load an init file), but
+@file{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 it has been
+explicitly requested.
+
+@item --script @var{file}
+@opindex --script
+@cindex script mode
+Run Emacs in batch mode, like @samp{--batch}, and then read and
+execute the Lisp code in @var{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
+
+@example
+#!/usr/bin/emacs --script
+@end example
+
+@noindent
+which will invoke Emacs with @samp{--script} and supply the name of
+the script file as @var{file}.  Emacs Lisp then treats @samp{#!}  as a
+comment delimiter.
+
+@item -q
+@opindex -q
+@itemx --no-init-file
+@opindex --no-init-file
+@cindex bypassing init and @file{default.el} file
+@cindex init file, not loading
+@cindex @file{default.el} file, not loading
+Do not load your Emacs init file @file{~/.emacs}, or @file{default.el}
+either.  Regardless of this switch, @file{site-start.el} is still loaded.
+When invoked like this, Emacs does not allow saving options
+changed with the @kbd{M-x customize} command and its variants.
+@xref{Easy Customization}.
+
+@item --no-site-file
+@opindex --no-site-file
+@cindex @file{site-start.el} file, not loading
+Do not load @file{site-start.el}.  The options @samp{-q}, @samp{-u}
+and @samp{--batch} have no effect on the loading of this file---this
+option and @samp{-Q} are the only options that block it.
+
+@item -Q
+@opindex -Q
+@itemx --quick
+@opindex --quick
+Start emacs with minimum customizations.  This is like using @samp{-q}
+and @samp{--no-site-file}, but also disables the startup screen.
+
+@item --no-splash
+@opindex --no-splash
+@vindex inhibit-splash-screen
+@cindex splash screen
+@cindex startup message
+Do not display a splash screen on startup.  You can also achieve this
+effect by setting the variable @code{inhibit-splash-screen} to
+non-@code{nil} in you personal init file (but @emph{not} in
+@file{site-start.el}).  (This variable was called
+@code{inhibit-startup-message} in previous Emacs versions.)
+
+@item --no-desktop
+@opindex --no-desktop
+Do not reload any saved desktop.  @xref{Saving Emacs Sessions}.
+
+@item -u @var{user}
+@opindex -u
+@itemx --user=@var{user}
+@opindex --user
+@cindex load init file of another user
+Load @var{user}'s Emacs init file @file{~@var{user}/.emacs} instead of
+your own@footnote{
+This option has no effect on MS-Windows.}.
+
+@item --debug-init
+@opindex --debug-init
+@cindex errors in init file
+Enable the Emacs Lisp debugger for errors in the init file.
+@xref{Error Debugging,, Entering the Debugger on an Error, elisp, The
+GNU Emacs Lisp Reference Manual}.
+
+@item --unibyte
+@opindex --unibyte
+@itemx --no-multibyte
+@opindex --no-multibyte
+@cindex unibyte operation, command-line argument
+Do almost everything with single-byte buffers and strings.
+All buffers and strings are unibyte unless you (or a Lisp program)
+explicitly ask for a multibyte buffer or string.  (Note that Emacs
+always loads Lisp files in multibyte mode, even if @samp{--unibyte} is
+specified; see @ref{Enabling Multibyte}.)  Setting the environment
+variable @env{EMACS_UNIBYTE} has the same effect
+(@pxref{General Variables}).
+
+@item --multibyte
+@opindex --multibyte
+@itemx --no-unibyte
+@opindex --no-unibyte
+Inhibit the effect of @env{EMACS_UNIBYTE}, so that Emacs
+uses multibyte characters by default, as usual.
+@end table
+
+@node Command Example
+@appendixsec Command Argument Example
+
+  Here is an example of using Emacs with arguments and options.  It
+assumes you have a Lisp program file called @file{hack-c.el} which, when
+loaded, performs some useful operation on the current buffer, expected
+to be a C program.
+
+@example
+emacs --batch foo.c -l hack-c -f save-buffer >& log
+@end example
+
+@noindent
+This says to visit @file{foo.c}, load @file{hack-c.el} (which makes
+changes in the visited file), save @file{foo.c} (note that
+@code{save-buffer} is the function that @kbd{C-x C-s} is bound to), and
+then exit back to the shell (because of @samp{--batch}).  @samp{--batch}
+also guarantees there will be no problem redirecting output to
+@file{log}, because Emacs will not assume that it has a display terminal
+to work with.
+
+@node Resume Arguments
+@appendixsec Resuming Emacs with Arguments
+
+  You can specify action arguments for Emacs when you resume it after
+a suspension.  To prepare for this, put the following code in your
+@file{.emacs} file (@pxref{Hooks}):
+
+@c `resume-suspend-hook' is correct.  It is the name of a function.
+@example
+(add-hook 'suspend-hook 'resume-suspend-hook)
+(add-hook 'suspend-resume-hook 'resume-process-args)
+@end example
+
+  As further preparation, you must execute the shell script
+@file{emacs.csh} (if you use csh as your shell) or @file{emacs.bash}
+(if you use bash as your shell).  These scripts define an alias named
+@code{edit}, which will resume Emacs giving it new command line
+arguments such as files to visit.  The scripts are found in the
+@file{etc} subdirectory of the Emacs distribution.
+
+  Only action arguments work properly when you resume Emacs.  Initial
+arguments are not recognized---it's too late to execute them anyway.
+
+  Note that resuming Emacs (with or without arguments) must be done from
+within the shell that is the parent of the Emacs job.  This is why
+@code{edit} is an alias rather than a program or a shell script.  It is
+not possible to implement a resumption command that could be run from
+other subjobs of the shell; there is no way to define a command that could
+be made the value of @env{EDITOR}, for example.  Therefore, this feature
+does not take the place of the Emacs Server feature (@pxref{Emacs
+Server}).
+
+  The aliases use the Emacs Server feature if you appear to have a
+server Emacs running.  However, they cannot determine this with complete
+accuracy.  They may think that a server is still running when in
+actuality you have killed that Emacs, because the file
+@file{/tmp/esrv@dots{}} still exists.  If this happens, find that
+file and delete it.
+
+@node Environment
+@appendixsec Environment Variables
+@cindex environment variables
+
+  The @dfn{environment} is a feature of the operating system; it
+consists of a collection of variables with names and values.  Each
+variable is called an @dfn{environment variable}; environment variable
+names are case-sensitive, and it is conventional to use upper case
+letters only.  The values are all text strings.
+
+  What makes the environment useful is that subprocesses inherit the
+environment automatically from their parent process.  This means you
+can set up an environment variable in your login shell, and all the
+programs you run (including Emacs) will automatically see it.
+Subprocesses of Emacs (such as shells, compilers, and version-control
+software) inherit the environment from Emacs, too.
+
+@findex setenv
+@findex getenv
+  Inside Emacs, the command @kbd{M-x getenv} gets the value of an
+environment variable.  @kbd{M-x setenv} sets a variable in the Emacs
+environment.  (Environment variable substitutions with @samp{$} work
+in the value just as in file names; see @ref{File Names with $}.)
+
+  The way to set environment variables outside of Emacs depends on the
+operating system, and especially the shell that you are using.  For
+example, here's how to set the environment variable @env{ORGANIZATION}
+to @samp{not very much} using Bash:
+
+@example
+export ORGANIZATION="not very much"
+@end example
+
+@noindent
+and here's how to do it in csh or tcsh:
+
+@example
+setenv ORGANIZATION "not very much"
+@end example
+
+  When Emacs is using the X Window System, various environment
+variables that control X work for Emacs as well.  See the X
+documentation for more information.
+
+@menu
+* General Variables::   Environment variables that all versions of Emacs use.
+* Misc Variables::      Certain system-specific variables.
+* MS-Windows Registry:: An alternative to the environment on MS-Windows.
+@end menu
+
+@node General Variables
+@appendixsubsec General Variables
+
+  Here is an alphabetical list of specific environment variables that
+have special meanings in Emacs, giving the name of each variable and
+its meaning.  Most of these variables are also used by some other
+programs.  Emacs does not require any of these environment variables
+to be set, but it uses their values if they are set.
+
+@table @env
+@item CDPATH
+Used by the @code{cd} command to search for the directory you specify,
+when you specify a relative directory name.
+@item EMACS_UNIBYTE
+@cindex unibyte operation, environment variable
+Defining this environment variable with a nonempty value directs Emacs
+to do almost everything with single-byte buffers and strings.  It is
+equivalent to using the @samp{--unibyte} command-line option on each
+invocation.  @xref{Initial Options}.
+@item EMACSDATA
+Directory for the architecture-independent files that come with Emacs.
+This is used to initialize the Lisp variable @code{data-directory}.
+@item EMACSDOC
+Directory for the documentation string file,
+@file{DOC-@var{emacsversion}}.  This is used to initialize the Lisp
+variable @code{doc-directory}.
+@item EMACSLOADPATH
+A colon-separated list of directories@footnote{
+Here and below, whenever we say ``colon-separated list of directories,''
+it pertains to Unix and GNU/Linux systems.  On MS-DOS and MS-Windows,
+the directories are separated by semi-colons instead, since DOS/Windows
+file names might include a colon after a drive letter.}
+to search for Emacs Lisp files---used to initialize @code{load-path}.
+@item EMACSPATH
+A colon-separated list of directories to search for executable
+files---used to initialize @code{exec-path}.
+@item EMAIL
+@vindex user-mail-address@r{, initialization}
+Your email address; used to initialize the Lisp variable
+@code{user-mail-address}, which the Emacs mail interface puts into
+the @samp{From} header of outgoing messages (@pxref{Mail Headers}).
+@item ESHELL
+Used for shell-mode to override the @env{SHELL} environment variable.
+@item HISTFILE
+The name of the file that shell commands are saved in between logins.
+This variable defaults to @file{~/.bash_history} if you use Bash, to
+@file{~/.sh_history} if you use ksh, and to @file{~/.history}
+otherwise.
+@item HOME
+The location of your files in the directory tree; used for
+expansion of file names starting with a tilde (@file{~}).  On MS-DOS,
+it defaults to the directory from which Emacs was started, with
+@samp{/bin} removed from the end if it was present.  On Windows, the
+default value of @env{HOME} is the @file{Application Data}
+subdirectory of the user profile directory (normally, this is
+@file{C:/Documents and Settings/@var{username}/Application Data},
+where @var{username} is your user name), though for backwards
+compatibility @file{C:/} will be used instead if a @file{.emacs} file
+is found there.
+@item HOSTNAME
+The name of the machine that Emacs is running on.
+@item INCPATH
+A colon-separated list of directories.  Used by the @code{complete} package
+to search for files.
+@item INFOPATH
+A colon-separated list of directories in which to search for Info files.
+@item LC_ALL
+@itemx LC_COLLATE
+@itemx LC_CTYPE
+@itemx LC_MESSAGES
+@itemx LC_MONETARY
+@itemx LC_NUMERIC
+@itemx LC_TIME
+@itemx LANG
+The user's preferred locale.  The locale has six categories, specified
+by the environment variables @env{LC_COLLATE} for sorting,
+@env{LC_CTYPE} for character encoding, @env{LC_MESSAGES} for system
+messages, @env{LC_MONETARY} for monetary formats, @env{LC_NUMERIC} for
+numbers, and @env{LC_TIME} for dates and times.  If one of these
+variables is not set, the category defaults to the value of the
+@env{LANG} environment variable, or to the default @samp{C} locale if
+@env{LANG} is not set.  But if @env{LC_ALL} is specified, it overrides
+the settings of all the other locale environment variables.
+
+On MS-Windows, if @env{LANG} is not already set in the environment
+when Emacs starts, Emacs sets it based on the system-wide default
+language, which you can set in the @samp{Regional Settings} Control Panel
+on some versions of MS-Windows.
+
+The value of the @env{LC_CTYPE} category is
+matched against entries in @code{locale-language-names},
+@code{locale-charset-language-names}, and
+@code{locale-preferred-coding-systems}, to select a default language
+environment and coding system.  @xref{Language Environments}.
+@item LOGNAME
+The user's login name.  See also @env{USER}.
+@item MAIL
+The name of your system mail inbox.
+@item MH
+Name of setup file for the mh system.  (The default is @file{~/.mh_profile}.)
+@item NAME
+Your real-world name.
+@item NNTPSERVER
+The name of the news server.  Used by the mh and Gnus packages.
+@item ORGANIZATION
+The name of the organization to which you belong.  Used for setting the
+`Organization:' header in your posts from the Gnus package.
+@item PATH
+A colon-separated list of directories in which executables reside.  This
+is used to initialize the Emacs Lisp variable @code{exec-path}.
+@item PWD
+If set, this should be the default directory when Emacs was started.
+@item REPLYTO
+If set, this specifies an initial value for the variable
+@code{mail-default-reply-to}.  @xref{Mail Headers}.
+@item SAVEDIR
+The name of a directory in which news articles are saved by default.
+Used by the Gnus package.
+@item SHELL
+The name of an interpreter used to parse and execute programs run from
+inside Emacs.
+@item SMTPSERVER
+The name of the outgoing mail server.  Used by the SMTP library
+(@pxref{Top,,,smtpmail,Sending mail via SMTP}).
+@cindex background mode, on @command{xterm}
+@item TERM
+The type of the terminal that Emacs is using.  This variable must be
+set unless Emacs is run in batch mode.  On MS-DOS, it defaults to
+@samp{internal}, which specifies a built-in terminal emulation that
+handles the machine's own display.  If the value of @env{TERM} indicates
+that Emacs runs in non-windowed mode from @command{xterm} or a similar
+terminal emulator, the background mode defaults to @samp{light}, and
+Emacs will choose colors that are appropriate for a light background.
+@item TERMCAP
+The name of the termcap library file describing how to program the
+terminal specified by the @env{TERM} variable.  This defaults to
+@file{/etc/termcap}.
+@item TMPDIR
+Used by the Emerge package as a prefix for temporary files.
+@item TZ
+This specifies the current time zone and possibly also daylight
+saving time information.  On MS-DOS, if @env{TZ} is not set in the
+environment when Emacs starts, Emacs defines a default value as
+appropriate for the country code returned by DOS.  On MS-Windows, Emacs
+does not use @env{TZ} at all.
+@item USER
+The user's login name.  See also @env{LOGNAME}.  On MS-DOS, this
+defaults to @samp{root}.
+@item VERSION_CONTROL
+Used to initialize the @code{version-control} variable (@pxref{Numbered Backups}).
+@end table
+
+@node Misc Variables
+@appendixsubsec Miscellaneous Variables
+
+These variables are used only on particular configurations:
+
+@table @env
+@item COMSPEC
+On MS-DOS and MS-Windows, the name of the command interpreter to use
+when invoking batch files and commands internal to the shell.  On MS-DOS
+this is also used to make a default value for the @env{SHELL} environment
+variable.
+
+@item NAME
+On MS-DOS, this variable defaults to the value of the @env{USER}
+variable.
+
+@item TEMP
+@itemx TMP
+On MS-DOS and MS-Windows, these specify the name of the directory for
+storing temporary files in.
+
+@item EMACSTEST
+On MS-DOS, this specifies a file to use to log the operation of the
+internal terminal emulator.  This feature is useful for submitting bug
+reports.
+
+@item EMACSCOLORS
+On MS-DOS, this specifies the screen colors.  It is useful to set them
+this way, since otherwise Emacs would display the default colors
+momentarily when it starts up.
+
+The value of this variable should be the two-character encoding of the
+foreground (the first character) and the background (the second
+character) colors of the default face.  Each character should be the
+hexadecimal code for the desired color on a standard PC text-mode
+display.  For example, to get blue text on a light gray background,
+specify @samp{EMACSCOLORS=17}, since 1 is the code of the blue color and
+7 is the code of the light gray color.
+
+The PC display usually supports only eight background colors.  However,
+Emacs switches the DOS display to a mode where all 16 colors can be used
+for the background, so all four bits of the background color are
+actually used.
+
+@item WINDOW_GFX
+Used when initializing the Sun windows system.
+
+@item PRELOAD_WINSOCK
+On MS-Windows, if you set this variable, Emacs will load and initialize
+the network library at startup, instead of waiting until the first
+time it is required.
+
+@item emacs_dir
+On MS-Windows, @env{emacs_dir} is a special environment variable, which
+indicates the full path of the directory in which Emacs is installed.
+If Emacs is installed in the standard directory structure, it
+calculates this value automatically.  It is not much use setting this
+variable yourself unless your installation is non-standard, since
+unlike other environment variables, it will be overridden by Emacs at
+startup.  When setting other environment variables, such as
+@env{EMACSLOADPATH}, you may find it useful to use @env{emacs_dir}
+rather than hard-coding an absolute path.  This allows multiple
+versions of Emacs to share the same environment variable settings, and
+it allows you to move the Emacs installation directory, without
+changing any environment or registry settings.
+@end table
+
+@node MS-Windows Registry
+@appendixsubsec The MS-Windows System Registry
+@pindex addpm, MS-Windows installation program
+@cindex registry, setting environment variables and resources on MS-Windows
+
+Under MS-Windows, the installation program @command{addpm.exe} adds
+values for @env{emacs_dir}, @env{EMACSLOADPATH}, @env{EMACSDATA},
+@env{EMACSPATH}, @env{EMACSDOC}, @env{SHELL} and @env{TERM} to the
+@file{HKEY_LOCAL_MACHINE} section of the system registry, under
+@file{/Software/GNU/Emacs}.  It does this because there is no standard
+place to set environment variables across different versions of
+Windows.  Running @command{addpm.exe} is no longer strictly necessary
+in recent versions of Emacs, but if you are upgrading from an older
+version, running @command{addpm.exe} ensures that you do not have
+older registry entries from a previous installation, which may not be
+compatible with the latest version of Emacs.
+
+When Emacs starts, as well as checking the environment, it also checks
+the System Registry for those variables and for @env{HOME}, @env{LANG}
+and @env{PRELOAD_WINSOCK}.
+
+To determine the value of those variables, Emacs goes through the
+following procedure.  First, the environment is checked.  If the
+variable is not found there, Emacs looks for registry keys by that
+name under @file{/Software/GNU/Emacs}; first in the
+@file{HKEY_CURRENT_USER} section of the registry, and if not found
+there, in the @file{HKEY_LOCAL_MACHINE} section.  Finally, if Emacs
+still cannot determine the values, compiled-in defaults are used.
+
+In addition to the environment variables above, you can also add many
+of the settings which on X belong in the @file{.Xdefaults} file
+(@pxref{X Resources}) to the @file{/Software/GNU/Emacs} registry key.
+Settings you add to the @file{HKEY_LOCAL_MACHINE} section will affect
+all users of the machine.  Settings you add to the
+@file{HKEY_CURRENT_USER} section will only affect you, and will
+override machine wide settings.
+
+@node Display X
+@appendixsec Specifying the Display Name
+@cindex display name (X Window System)
+@cindex @env{DISPLAY} environment variable
+
+  The environment variable @env{DISPLAY} tells all X clients, including
+Emacs, where to display their windows.  Its value is set by default
+in ordinary circumstances, when you start an X server and run jobs
+locally.  Occasionally you may need to specify the display yourself; for
+example, if you do a remote login and want to run a client program
+remotely, displaying on your local screen.
+
+  With Emacs, the main reason people change the default display is to
+let them log into another system, run Emacs on that system, but have the
+window displayed at their local terminal.  You might need to log in
+to another system because the files you want to edit are there, or
+because the Emacs executable file you want to run is there.
+
+  The syntax of the @env{DISPLAY} environment variable is
+@samp{@var{host}:@var{display}.@var{screen}}, where @var{host} is the
+host name of the X Window System server machine, @var{display} is an
+arbitrarily-assigned number that distinguishes your server (X terminal)
+from other servers on the same machine, and @var{screen} is a
+rarely-used field that allows an X server to control multiple terminal
+screens.  The period and the @var{screen} field are optional.  If
+included, @var{screen} is usually zero.
+
+  For example, if your host is named @samp{glasperle} and your server is
+the first (or perhaps the only) server listed in the configuration, your
+@env{DISPLAY} is @samp{glasperle:0.0}.
+
+  You can specify the display name explicitly when you run Emacs, either
+by changing the @env{DISPLAY} variable, or with the option @samp{-d
+@var{display}} or @samp{--display=@var{display}}.  Here is an example:
+
+@smallexample
+emacs --display=glasperle:0 &
+@end smallexample
+
+  You can inhibit the direct use of the window system and GUI with the
+@samp{-nw} option.  It tells Emacs to display using ordinary @acronym{ASCII} on
+its controlling terminal.  This is also an initial option.
+
+  Sometimes, security arrangements prevent a program on a remote system
+from displaying on your local system.  In this case, trying to run Emacs
+produces messages like this:
+
+@smallexample
+Xlib:  connection to "glasperle:0.0" refused by server
+@end smallexample
+
+@noindent
+You might be able to overcome this problem by using the @command{xhost}
+command on the local system to give permission for access from your
+remote machine.
+
+@node Font X
+@appendixsec Font Specification Options
+@cindex font name (X Window System)
+
+  By default, Emacs displays text in a twelve point Courier font (when
+using X).  You can specify a different font on your command line
+through the option @samp{-fn @var{name}} (or @samp{--font}, which is
+an alias for @samp{-fn}).
+
+@table @samp
+@item -fn @var{name}
+@opindex -fn
+@itemx --font=@var{name}
+@opindex --font
+@cindex specify default font from the command line
+Use font @var{name} as the default font.
+@end table
+
+  Under X, each font has a long name which consists of fourteen words
+or numbers, separated by dashes.  Some fonts also have shorter
+nicknames.  For instance, @samp{9x15} is such a nickname.  This font
+makes each character nine pixels wide and fifteen pixels high.  You
+can use either kind of name.  Case is insignificant in both kinds.
+You can use wildcard patterns for the font name; then Emacs lets X
+choose one of the fonts that match the pattern.  The wildcard
+character @samp{*} matches any sequence of characters (including none)
+and @samp{?} matches any single character.  However, matching is
+implementation-dependent, and can be inaccurate when wildcards match
+dashes in a long name.  For reliable results, supply all 14 dashes and
+use wildcards only within a field.  Here is an example, which happens
+to specify the font whose nickname is @samp{6x13}:
+
+@smallexample
+emacs -fn \
+  "-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1" &
+@end smallexample
+
+@noindent
+You can also specify the font in your @file{.Xdefaults} file:
+
+@smallexample
+emacs.font: -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
+@end smallexample
+
+  Note that if you use a wildcard pattern on the command line, you
+need to enclose it in single or double quotes, to prevent the shell
+from accidentally expanding it into a list of file names.  On the
+other hand, you should not quote the name in the @file{.Xdefaults}
+file.
+
+The default font used by Emacs (under X) is:
+
+@smallexample
+-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
+@end smallexample
+
+  A long font name has the following form:
+
+@smallexample
+-@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{}
+@dots{}-@var{pixels}-@var{height}-@var{horiz}-@var{vert}-@var{spacing}-@var{width}-@var{registry}-@var{encoding}
+@end smallexample
+
+@table @var
+@item maker
+This is the name of the font manufacturer.
+@item family
+This is the name of the font family---for example, @samp{courier}.
+@item weight
+This is normally @samp{bold}, @samp{medium} or @samp{light}.  Other
+words may appear here in some font names.
+@item slant
+This is @samp{r} (roman), @samp{i} (italic), @samp{o} (oblique),
+@samp{ri} (reverse italic), or @samp{ot} (other).
+@item widthtype
+This is normally @samp{condensed}, @samp{extended}, @samp{semicondensed}
+or @samp{normal}.  Other words may appear here in some font names.
+@item style
+This is an optional additional style name.  Usually it is empty---most
+long font names have two hyphens in a row at this point.
+@item pixels
+This is the font height, in pixels.
+@item height
+This is the font height on the screen, measured in tenths of a printer's
+point---approximately 1/720 of an inch.  In other words, it is the point
+size of the font, times ten.  For a given vertical resolution,
+@var{height} and @var{pixels} are proportional; therefore, it is common
+to specify just one of them and use @samp{*} for the other.
+@item horiz
+This is the horizontal resolution, in pixels per inch, of the screen for
+which the font is intended.
+@item vert
+This is the vertical resolution, in pixels per inch, of the screen for
+which the font is intended.  Normally the resolution of the fonts on
+your system is the right value for your screen; therefore, you normally
+specify @samp{*} for this and @var{horiz}.
+@item spacing
+This is @samp{m} (monospace), @samp{p} (proportional) or @samp{c}
+(character cell).
+@item width
+This is the average character width, in pixels, multiplied by ten.
+@item registry
+@itemx encoding
+These together make up the X font character set that the font depicts.
+(X font character sets are not the same as Emacs charsets, but they
+are solutions for the same problem.)  You can use the
+@command{xfontsel} program to check which choices you have.  However,
+normally you should use @samp{iso8859} for @var{registry} and @samp{1}
+for @var{encoding}.
+@end table
+
+@cindex listing system fonts
+  You will probably want to use a fixed-width default font---that is,
+a font in which all characters have the same width.  Any font with
+@samp{m} or @samp{c} in the @var{spacing} field of the long name is a
+fixed-width font.  Here's how to use the @command{xlsfonts} program to
+list all the fixed-width fonts available on your system:
+
+@example
+xlsfonts -fn '*x*' | egrep "^[0-9]+x[0-9]+"
+xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-m*'
+xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-c*'
+@end example
+
+@noindent
+To see what a particular font looks like, use the @command{xfd} command.
+For example:
+
+@example
+xfd -fn 6x13
+@end example
+
+@noindent
+displays the entire font @samp{6x13}.
+
+  While running Emacs, you can set the font of the current frame
+(@pxref{Frame Parameters}) or for a specific kind of text
+(@pxref{Faces}).
+
+@node Colors
+@appendixsec Window Color Options
+@cindex color of window, from command line
+@cindex text colors, from command line
+
+@findex list-colors-display
+@cindex available colors
+  On a color display, you can specify which color to use for various
+parts of the Emacs display.  To find out what colors are available on
+your system, type @kbd{M-x list-colors-display}, or press
+@kbd{C-Mouse-2} and select @samp{Display Colors} from the pop-up menu.
+(A particular window system might support many more colors, but the
+list displayed by @code{list-colors-display} shows their portable
+subset that can be safely used on any display supported by Emacs.)
+If you do not specify colors, on windowed displays the default for the
+background is white and the default for all other colors is black.  On a
+monochrome display, the foreground is black, the background is white,
+and the border is gray if the display supports that.  On terminals, the
+background is usually black and the foreground is white.
+
+  Here is a list of the command-line options for specifying colors:
+
+@table @samp
+@item -fg @var{color}
+@opindex -fg
+@itemx --foreground-color=@var{color}
+@opindex --foreground-color
+@cindex foreground color, command-line argument
+Specify the foreground color.  @var{color} should be a standard color
+name, or a numeric specification of the color's red, green, and blue
+components as in @samp{#4682B4} or @samp{RGB:46/82/B4}.
+@item -bg @var{color}
+@opindex -bg
+@itemx --background-color=@var{color}
+@opindex --background-color
+@cindex background color, command-line argument
+Specify the background color.
+@item -bd @var{color}
+@opindex -bd
+@itemx --border-color=@var{color}
+@opindex --border-color
+@cindex border color, command-line argument
+Specify the color of the border of the X window.
+@item -cr @var{color}
+@opindex -cr
+@itemx --cursor-color=@var{color}
+@opindex --cursor-color
+@cindex cursor color, command-line argument
+Specify the color of the Emacs cursor which indicates where point is.
+@item -ms @var{color}
+@opindex -ms
+@itemx --mouse-color=@var{color}
+@opindex --mouse-color
+@cindex mouse pointer color, command-line argument
+Specify the color for the mouse cursor when the mouse is in the Emacs window.
+@item -r
+@opindex -r
+@itemx -rv
+@opindex -rv
+@itemx --reverse-video
+@opindex --reverse-video
+@cindex reverse video, command-line argument
+Reverse video---swap the foreground and background colors.
+@item --color=@var{mode}
+@opindex --color
+@cindex standard colors on a character terminal
+@cindex override character terminal color support
+For a character terminal only, specify the mode of color support.
+This option is intended for overriding the number of supported colors
+that the character terminal advertises in its @code{termcap} or
+@code{terminfo} database.  The parameter @var{mode} can be one of the
+following:
+@table @samp
+@item never
+@itemx no
+Don't use colors even if the terminal's capabilities specify color
+support.
+@item default
+@itemx auto
+Same as when @option{--color} is not used at all: Emacs detects at
+startup whether the terminal supports colors, and if it does, turns on
+colored display.
+@item always
+@itemx yes
+@itemx ansi8
+Turn on the color support unconditionally, and use color commands
+specified by the ANSI escape sequences for the 8 standard colors.
+@item @var{num}
+Use color mode for @var{num} colors.  If @var{num} is -1, turn off
+color support (equivalent to @samp{never}); if it is 0, use the
+default color support for this terminal (equivalent to @samp{auto});
+otherwise use an appropriate standard mode for @var{num} colors.
+Depending on your terminal's capabilities, Emacs might be able to turn
+on a color mode for 8, 16, 88, or 256 as the value of @var{num}.  If
+there is no mode that supports @var{num} colors, Emacs acts as if
+@var{num} were 0, i.e.@: it uses the terminal's default color support
+mode.
+@end table
+If @var{mode} is omitted, it defaults to @var{ansi8}.
+@end table
+
+  For example, to use a coral mouse cursor and a slate blue text cursor,
+enter:
+
+@example
+emacs -ms coral -cr 'slate blue' &
+@end example
+
+  You can reverse the foreground and background colors through the
+@samp{-rv} option or with the X resource @samp{reverseVideo}.
+
+  The @samp{-fg}, @samp{-bg}, and @samp{-rv} options function on
+text-only terminals as well as on graphical displays.
+
+@node Window Size X
+@appendixsec Options for Window Size and Position
+@cindex geometry of Emacs window
+@cindex position and size of Emacs frame
+@cindex width and height of Emacs frame
+@cindex specifying fullscreen for Emacs frame
+
+  Here is a list of the command-line options for specifying size and
+position of the initial Emacs frame:
+
+@table @samp
+@item -g @var{width}x@var{height}@r{[@{}+-@r{@}}@var{xoffset}@r{@{}+-@r{@}}@var{yoffset}@r{]]}
+@opindex -g
+@itemx --geometry=@var{width}x@var{height}@r{[@{}+-@r{@}}@var{xoffset}@r{@{}+-@r{@}}@var{yoffset}@r{]]}
+@opindex --geometry
+@cindex geometry, command-line argument
+Specify the size @var{width} and @var{height} (measured in character
+columns and lines), and positions @var{xoffset} and @var{yoffset}
+(measured in pixels).  The @var{width} and @var{height} parameters
+apply to all frames, whereas @var{xoffset} and @var{yoffset} only to
+the initial frame.
+
+@item -fs
+@opindex -fs
+@itemx --fullscreen
+@opindex --fullscreen
+@cindex fullscreen, command-line argument
+Specify that width and height shall be the size of the screen.
+
+@item -fh
+@opindex -fh
+@itemx --fullheight
+@opindex --fullheight
+@cindex fullheight, command-line argument
+Specify that the height shall be the height of the screen.
+
+@item -fw
+@opindex -fw
+@itemx --fullwidth
+@opindex --fullwidth
+@cindex fullwidth, command-line argument
+Specify that the width shall be the width of the screen.
+@end table
+
+
+@noindent
+In the @samp{--geometry} option, @code{@r{@{}+-@r{@}}} means either a plus
+ sign or a minus sign.  A plus
+sign before @var{xoffset} means it is the distance from the left side of
+the screen; a minus sign means it counts from the right side.  A plus
+sign before @var{yoffset} means it is the distance from the top of the
+screen, and a minus sign there indicates the distance from the bottom.
+The values @var{xoffset} and @var{yoffset} may themselves be positive or
+negative, but that doesn't change their meaning, only their direction.
+
+  Emacs uses the same units as @command{xterm} does to interpret the geometry.
+The @var{width} and @var{height} are measured in characters, so a large font
+creates a larger frame than a small font.  (If you specify a proportional
+font, Emacs uses its maximum bounds width as the width unit.)  The
+@var{xoffset} and @var{yoffset} are measured in pixels.
+
+  You do not have to specify all of the fields in the geometry
+specification.  If you omit both @var{xoffset} and @var{yoffset}, the
+window manager decides where to put the Emacs frame, possibly by
+letting you place it with the mouse.  For example, @samp{164x55}
+specifies a window 164 columns wide, enough for two ordinary width
+windows side by side, and 55 lines tall.
+
+  The default width for Emacs is 80 characters and the default height is
+40 lines.  You can omit either the width or the height or both.  If
+you start the geometry with an integer, Emacs interprets it as the
+width.  If you start with an @samp{x} followed by an integer, Emacs
+interprets it as the height.  Thus, @samp{81} specifies just the width;
+@samp{x45} specifies just the height.
+
+  If you start with @samp{+} or @samp{-}, that introduces an offset,
+which means both sizes are omitted.  Thus, @samp{-3} specifies the
+@var{xoffset} only.  (If you give just one offset, it is always
+@var{xoffset}.)  @samp{+3-3} specifies both the @var{xoffset} and the
+@var{yoffset}, placing the frame near the bottom left of the screen.
+
+  You can specify a default for any or all of the fields in
+@file{.Xdefaults} file, and then override selected fields with a
+@samp{--geometry} option.
+
+  Since the mode line and the echo area occupy the last 2 lines of the
+frame, the height of the initial text window is 2 less than the height
+specified in your geometry.  In non-X-toolkit versions of Emacs, the
+menu bar also takes one line of the specified number.  But in the X
+toolkit version, the menu bar is additional and does not count against
+the specified height.  The tool bar, if present, is also additional.
+
+  Enabling or disabling the menu bar or tool bar alters the amount of
+space available for ordinary text.  Therefore, if Emacs starts up with
+a tool bar (which is the default), and handles the geometry
+specification assuming there is a tool bar, and then your
+@file{~/.emacs} file disables the tool bar, you will end up with a
+frame geometry different from what you asked for.  To get the intended
+size with no tool bar, use an X resource to specify ``no tool bar''
+(@pxref{Table of Resources}); then Emacs will already know there's no
+tool bar when it processes the specified geometry.
+
+  When using one of @samp{--fullscreen}, @samp{--fullwidth} or
+@samp{--fullheight} there may be some space around the frame
+anyway.  That is because Emacs rounds the sizes so they are an
+even number of character heights and widths.
+
+ Some window managers have options that can make them ignore both
+program-specified and user-specified positions (sawfish is one).
+If these are set, Emacs fails to position the window correctly.
+
+@node Borders X
+@appendixsec Internal and External Borders
+@cindex borders (X Window System)
+
+  An Emacs frame has an internal border and an external border.  The
+internal border is an extra strip of the background color around the
+text portion of the frame.  Emacs itself draws the internal border.
+The external border is added by the window manager outside the frame;
+depending on the window manager you use, it may contain various boxes
+you can click on to move or iconify the window.
+
+@table @samp
+@item -ib @var{width}
+@opindex -ib
+@itemx --internal-border=@var{width}
+@opindex --internal-border
+@cindex internal border width, command-line argument
+Specify @var{width} as the width of the internal border (between the text
+and the main border), in pixels.
+
+@item -bw @var{width}
+@opindex -bw
+@itemx --border-width=@var{width}
+@opindex --border-width
+@cindex main border width, command-line argument
+Specify @var{width} as the width of the main border, in pixels.
+@end table
+
+  When you specify the size of the frame, that does not count the
+borders.  The frame's position is measured from the outside edge of the
+external border.
+
+  Use the @samp{-ib @var{n}} option to specify an internal border
+@var{n} pixels wide.  The default is 1.  Use @samp{-bw @var{n}} to
+specify the width of the external border (though the window manager may
+not pay attention to what you specify).  The default width of the
+external border is 2.
+
+@node Title X
+@appendixsec Frame Titles
+
+  An Emacs frame may or may not have a specified title.  The frame
+title, if specified, appears in window decorations and icons as the
+name of the frame.  If an Emacs frame has no specified title, the
+default title has the form @samp{@var{invocation-name}@@@var{machine}}
+(if there is only one frame) or the selected window's buffer name (if
+there is more than one frame).
+
+  You can specify a title for the initial Emacs frame with a command
+line option:
+
+@table @samp
+@item -T @var{title}
+@opindex -T
+@itemx --title=@var{title}
+@opindex --title
+@cindex frame title, command-line argument
+Specify @var{title} as the title for the initial Emacs frame.
+@end table
+
+  The @samp{--name} option (@pxref{Resources}) also specifies the title
+for the initial Emacs frame.
+
+@node Icons X
+@appendixsec Icons
+@cindex icons (X Window System)
+
+  Most window managers allow you to ``iconify'' a frame, removing
+it from sight, and leaving a small, distinctive ``icon'' window in its
+place.  Clicking on the icon window makes the frame itself appear again.
+If you have many clients running at once, you can avoid cluttering up
+the screen by iconifying most of the clients.
+
+@table @samp
+@item -nbi
+@opindex -nbi
+@itemx --no-bitmap-icon
+@opindex --no-bitmap-icon
+@cindex Emacs icon, a gnu
+Do not use a picture of a gnu as the Emacs icon.
+
+@item -iconic
+@opindex --iconic
+@itemx --iconic
+@cindex start iconified, command-line argument
+Start Emacs in iconified state.
+@end table
+
+  By default Emacs uses an icon window containing a picture of the GNU gnu.
+The @samp{-nbi} or @samp{--no-bitmap-icon} option tells Emacs to let the
+window manager choose what sort of icon to use---usually just a small
+rectangle containing the frame's title.
+
+  The @samp{-iconic} option tells Emacs to begin running as an icon,
+rather than showing a frame right away.  In this situation, the icon
+is the only indication that Emacs has started; the text frame doesn't
+appear until you deiconify it.
+
+@node Misc X
+@appendixsec Other Display Options
+
+@table @samp
+@item -hb
+@opindex -hb
+@itemx --horizontal-scroll-bars
+@opindex --horizontal-scroll-bars
+@c @cindex horizontal scroll bars, command-line argument
+Enable horizontal scroll bars.  Since horizontal scroll bars
+are not yet implemented, this actually does nothing.
+
+@item -vb
+@opindex -vb
+@itemx --vertical-scroll-bars
+@opindex --vertical-scroll-bars
+@cindex vertical scroll bars, command-line argument
+Enable vertical scroll bars.
+
+@item -lsp @var{pixels}
+@opindex -lsp
+@itemx --line-spacing=@var{pixels}
+@opindex --line-spacing
+@cindex line spacing, command-line argument
+Specify @var{pixels} as additional space to put between lines, in pixels.
+
+@item -nbc
+@opindex -nbc
+@itemx --no-blinking-cursor
+@opindex --no-blinking-cursor
+@cindex blinking cursor disable, command-line argument
+Disable the blinking cursor on graphical displays.
+
+@item -D
+@opindex -D
+@itemx --basic-display
+@opindex --basic-display
+Disable the menu-bar, the tool-bar, the scroll-bars, and tool tips,
+and turn off the blinking cursor.  This can be useful for making a
+test case that simplifies debugging of display problems.
+@end table
+
+  The @samp{--xrm} option (@pxref{Resources}) specifies additional
+X resource values.
+
+@ignore
+   arch-tag: fffecd9e-7329-4a51-a3cc-dd4a9889340e
+@end ignore