1 @node Command Switches, Startup Paths, Exiting, Top
2 @section Command Line Switches and Arguments
3 @cindex command line arguments
4 @cindex arguments (from shell)
6 SXEmacs supports command line arguments you can use to request
7 various actions when invoking Emacs. The commands are for compatibility
8 with other editors and for sophisticated activities. If you are using
9 SXEmacs under the X window system, you can also use a number of
10 standard Xt command line arguments. Command line arguments are not usually
11 needed for editing with Emacs; new users can skip this section.
13 Many editors are designed to be started afresh each time you want to
14 edit. You start the editor to edit one file; then exit the editor. The
15 next time you want to edit either another file or the same one, you
16 start the editor again. Under these circumstances, it makes sense to use a
17 command line argument to say which file to edit.
19 The recommended way to use SXEmacs is to start it only once, just
20 after you log in, and do all your editing in the same Emacs process.
21 Each time you want to edit a file, you visit it using the existing
22 Emacs. Emacs creates a new buffer for each file, and (unless you kill
23 some of the buffers) Emacs eventually has many files in it ready for
24 editing. Usually you do not kill the Emacs process until you are about
25 to log out. Since you usually read files by typing commands to Emacs,
26 command line arguments for specifying a file when Emacs is started are seldom
29 Emacs accepts command-line arguments that specify files to visit,
30 functions to call, and other activities and operating modes. If you
31 are running SXEmacs under the X window system, a number of standard Xt
32 command line arguments are available, as well as a few X parameters
33 that are SXEmacs-specific.
35 Options with long names with a single initial hyphen are also
36 recognized with the GNU double initial hyphen syntax. (The reverse
39 The following subsections list:
42 Command line arguments that you can always use
44 Command line arguments that have to appear at the beginning of the
47 Command line arguments that are only relevant if you are running SXEmacs
51 @subsection Command Line Arguments for Any Position
52 Command line arguments are processed in the order they appear on the
53 command line; however, certain arguments (the ones in the
54 second table) must be at the front of the list if they are used.
56 Here are the arguments allowed:
60 Visit @var{file} using @code{find-file}. @xref{Visiting}.
62 @item +@var{linenum} @var{file}
63 Visit @var{file} using @code{find-file}, then go to line number
66 @item -load @var{file}
68 Load a file @var{file} of Lisp code with the function @code{load}.
69 @xref{Lisp Libraries}.
71 @item -funcall @var{function}
72 @itemx -f @var{function}
73 Call Lisp function @var{function} with no arguments.
75 @item -eval @var{function}
76 Interpret the next argument as a Lisp expression, and evaluate it.
77 You must be very careful of the shell quoting here.
79 @item -insert @var{file}
81 Insert the contents of @var{file} into the current buffer. This is like
82 what @kbd{M-x insert-buffer} does; @xref{Misc File Ops}.
85 Exit from Emacs without asking for confirmation. Always the last
86 argument processed, no matter where it appears in the command line.
90 Prints version information. This implies @samp{-batch}.
94 SXEmacs: steve@@sxemacs.org--2006/sxemacs--main--22.1.4--patch-79,
95 built Sun Apr 9 05:36:50 2006 on bastard
99 Prints a summary of command-line options and then exits.
102 @subsection Command Line Arguments (Beginning of Line Only)
103 The following arguments are recognized only at the beginning of the
104 command line. If more than one of them appears, they must appear in the
105 order in which they appear in this table.
110 Print the ID for the new portable dumper's dump file on the terminal and
111 exit. (Prints an error message and exits if SXEmacs was not configured
116 Don't load the dump file. Roughly equivalent to old temacs. (Ignored if
117 SXEmacs was not configured @samp{--pdump}.)
119 @item --terminal @var{file}
121 Use @var{file} instead of the terminal for input and output. This
122 implies the @samp{-nw} option, documented below.
126 Run Emacs in @dfn{batch mode}, which means that the text being edited is
127 not displayed and the standard Unix interrupt characters such as
128 @kbd{C-z} and @kbd{C-c} continue to have their normal effect. Emacs in
129 batch mode outputs to @code{stderr} only what would normally be printed
130 in the echo area under program control.
132 Batch mode is used for running programs written in Emacs Lisp from shell
133 scripts, makefiles, and so on. Normally the @samp{-l} switch or
134 @samp{-f} switch will be used as well, to invoke a Lisp program to do
135 the batch processing.
137 @samp{-batch} implies @samp{-q} (do not load an init file). It also
138 causes Emacs to kill itself after all command switches have been
139 processed. In addition, auto-saving is not done except in buffers for
140 which it has been explicitly requested.
144 Start up SXEmacs in TTY mode (using the TTY SXEmacs was started from),
145 rather than trying to connect to an X display. Note that this happens
146 automatically if the @samp{DISPLAY} environment variable is not set.
148 @item --color-terminal
150 Tells SXEmacs to assume that any TTY frame should be colorized even
151 when the color support was not detected. The color support is of
152 the 8 color ANSI terminals. If color capabilities of the terminal
153 are detected those more accurate settings are used.
156 Enter the debugger if an error in the init file occurs.
159 Displays information on how SXEmacs constructs the various paths into its
160 hierarchy on startup. (See also @pxref{Startup Paths}.)
163 Do not map the initial frame. This is useful if you want to start up
164 SXEmacs as a server (e.g. for gnuserv screens or external client widgets).
168 Do not load your Emacs init file. @xref{Init File}.
171 Do not load the site-specific init file @file{lisp/site-start.el}.
174 Do not load global symbol files (@file{auto-autoloads}) at startup.
175 This implies @samp{-vanilla}.
177 @item -no-early-packages
178 Do not process early packages. (For more information on startup issues
179 concerning the package system, @xref{Startup Paths}.)
182 This is equivalent to @samp{-q -no-site-file -no-early-packages}.
184 @item -user-init-file @var{file}
185 Load @var{file} as your Emacs init file instead of
186 @file{~/.sxemacs/init.el}.
188 @item -user-init-directory @var{directory}
189 Use @var{directory} as the location of your early package hierarchies
190 and the various user-specific initialization files.
192 @item -user @var{user}
194 Equivalent to @samp{-user-init-file ~@var{user}/.sxemacs/init.el
195 -user-init-directory ~@var{user}/.sxemacs}, or @samp{-user-init-file
196 ~@var{user}/.emacs -user-init-directory ~@var{user}/.sxemacs}, whichever
197 init file comes first. @xref{Init File}.
201 @vindex command-line-args
202 Note that the init file can get access to the command line argument
203 values as the elements of a list in the variable
204 @code{command-line-args}. (The arguments in the second table above will
205 already have been processed and will not be in the list.) The init file
206 can override the normal processing of the other arguments by setting
209 One way to use command switches is to visit many files automatically:
216 passes each @code{.c} file as a separate argument to Emacs, so that
217 Emacs visits each file (@pxref{Visiting}).
219 Here is an advanced example that assumes you have a Lisp program file
220 called @file{hack-c-program.el} which, when loaded, performs some useful
221 operation on the current buffer, expected to be a C program.
224 sxemacs -batch foo.c -l hack-c-program -f save-buffer -kill > log
228 Here Emacs is told to visit @file{foo.c}, load @file{hack-c-program.el}
229 (which makes changes in the visited file), save @file{foo.c} (note that
230 @code{save-buffer} is the function that @kbd{C-x C-s} is bound to), and
231 then exit to the shell from which the command was executed. @samp{-batch}
232 guarantees there will be no problem redirecting output to @file{log},
233 because Emacs will not assume that it has a display terminal to work
236 @subsection Command Line Arguments (for SXEmacs Under X)
237 @vindex frame-title-format
238 @vindex frame-icon-title-format
239 If you are running SXEmacs under X, a number of options are
240 available to control color, border, and window title and icon name:
243 @item -title @var{title}
244 @itemx -wn @var{title}
245 @itemx -T @var{title}
246 Use @var{title} as the window title. This sets the
247 @code{frame-title-format} variable, which controls the title of the X
248 window corresponding to the selected frame. This is the same format as
249 @code{mode-line-format}.
251 @item -iconname @var{title}
252 @itemx -in @var{title}
253 Use @var{title} as the icon name. This sets the
254 @code{frame-icon-title-format} variable, which controls the title of
255 the icon corresponding to the selected frame.
257 @item -mc @var{color}
258 Use @var{color} as the mouse color.
260 @item -cr @var{color}
261 Use @var{color} as the text-cursor foreground color.
264 Install a private colormap for SXEmacs.
267 In addition, SXEmacs allows you to use a number of standard Xt
268 command line arguments.
272 @item -background @var{color}
273 @itemx -bg @var{color}
274 Use @var{color} as the background color.
276 @item -bordercolor @var{color}
277 @itemx -bd @var{color}
278 Use @var{color} as the border color.
280 @item -borderwidth @var{width}
281 @itemx -bw @var{width}
282 Use @var{width} as the border width.
284 @item -display @var{display}
285 @itemx -d @var{display}
286 When running under the X window system, create the window containing the
287 Emacs frame on the display named @var{display}.
289 @item -foreground @var{color}
290 @itemx -fg @var{color}
291 Use @var{color} as the foreground color.
293 @item -font @var{name}
294 @itemx -fn @var{name}
295 Use @var{name} as the default font.
297 @item -geometry @var{spec}
298 @itemx -geom @var{spec}
300 Use the geometry (window size and/or position) specified by @var{spec}.
306 Bring up Emacs in reverse video.
308 @item -name @var{name}
309 Use the resource manager resources specified by @var{name}.
310 The default is to use the name of the program (@code{argv[0]}) as
311 the resource manager name.
314 Read something into the resource database for this invocation of Emacs only.