import -ko -b 1.1.3 XEmacs XEmacs-21_2 r21-2-35
[chise/xemacs-chise.git.1] / man / xemacs / cmdargs.texi
1
2 @node Command Switches, Startup Paths, Exiting, Top
3 @section Command Line Switches and Arguments
4 @cindex command line arguments
5 @cindex arguments (from shell)
6
7   XEmacs supports command line arguments you can use to request
8 various actions when invoking Emacs.  The commands are for compatibility
9 with other editors and for sophisticated activities.  If you are using
10 XEmacs under the X window system, you can also use a number of
11 standard Xt command line arguments. Command line arguments are not usually
12 needed for editing with Emacs; new users can skip this section.
13
14 Many editors are designed to be started afresh each time you want to
15 edit.  You start the editor to edit one file; then exit the editor.  The
16 next time you want to edit either another file or the same one, you
17 start the editor again.  Under these circumstances, it makes sense to use a
18 command line argument to say which file to edit.
19
20   The recommended way to use XEmacs is to start it only once, just
21 after you log in, and do all your editing in the same Emacs process.
22 Each time you want to edit a file, you visit it using the existing
23 Emacs.  Emacs creates a new buffer for each file, and (unless you kill
24 some of the buffers) Emacs eventually has many files in it ready for
25 editing.  Usually you do not kill the Emacs process until you are about
26 to log out.  Since you usually read files by typing commands to Emacs,
27 command line arguments for specifying a file when Emacs is started are seldom
28 needed.
29
30   Emacs accepts command-line arguments that specify files to visit,
31 functions to call, and other activities and operating modes.  If you are
32 running XEmacs under the X window system, a number of standard
33 Xt command line arguments are available as well. 
34
35 The following subsections list:
36 @itemize @bullet
37 @item 
38 Command line arguments that you can always use
39 @item 
40 Command line arguments that have to appear at the beginning of the
41 argument list
42 @item
43 Command line arguments that are only relevant if you are running XEmacs
44 under X
45 @end itemize
46
47 @subsection Command Line Arguments for Any Position
48  Command line arguments are processed in the order they appear on the
49 command line; however, certain arguments (the ones in the
50 second table) must be at the front of the list if they are used.
51
52   Here are the arguments allowed:
53
54 @table @samp
55 @item @var{file}
56 Visit @var{file} using @code{find-file}.  @xref{Visiting}.
57
58 @item +@var{linenum} @var{file}
59 Visit @var{file} using @code{find-file}, then go to line number
60 @var{linenum} in it.
61
62 @item -load @var{file}
63 @itemx -l @var{file}
64 Load a file @var{file} of Lisp code with the function @code{load}.
65 @xref{Lisp Libraries}.
66
67 @item -funcall @var{function}
68 @itemx -f @var{function}
69 Call Lisp function @var{function} with no arguments.
70
71 @item -eval @var{function}
72 Interpret the next argument as a Lisp expression, and evaluate it.
73 You must be very careful of the shell quoting here.
74
75 @item -insert @var{file}
76 @itemx -i @var{file}
77 Insert the contents of @var{file} into the current buffer.  This is like
78 what @kbd{M-x insert-buffer} does; @xref{Misc File Ops}.
79
80 @item -kill
81 Exit from Emacs without asking for confirmation.
82
83 @item -version
84 @itemx -V
85 Prints version information.  This implies @samp{-batch}.
86
87 @example
88 % xemacs -version
89 XEmacs 19.13 of Mon Aug 21 1995 on willow (usg-unix-v) [formerly Lucid Emacs]
90 @end example
91
92 @item -help
93 Prints a summary of command-line options and then exits.
94 @end table
95
96 @subsection Command Line Arguments (Beginning of Line Only)
97   The following arguments are recognized only at the beginning of the
98 command line.  If more than one of them appears, they must appear in the
99 order in which they appear in this table.
100
101 @table @samp
102 @item -t @var{file}
103 Use @var{file} instead of the terminal for input and output.  This
104 implies the @samp{-nw} option, documented below.
105
106 @cindex batch mode
107 @item -batch
108 Run Emacs in @dfn{batch mode}, which means that the text being edited is
109 not displayed and the standard Unix interrupt characters such as
110 @kbd{C-z} and @kbd{C-c} continue to have their normal effect.  Emacs in
111 batch mode outputs to @code{stderr} only what would normally be printed
112 in the echo area under program control.
113
114 Batch mode is used for running programs written in Emacs Lisp from shell
115 scripts, makefiles, and so on.  Normally the @samp{-l} switch or
116 @samp{-f} switch will be used as well, to invoke a Lisp program to do
117 the batch processing.
118
119 @samp{-batch} implies @samp{-q} (do not load an init file).  It also
120 causes Emacs to kill itself after all command switches have been
121 processed.  In addition, auto-saving is not done except in buffers for
122 which it has been explicitly requested.
123
124 @item -nw
125 Start up XEmacs in TTY mode (using the TTY XEmacs was started from),
126 rather than trying to connect to an X display.  Note that this happens
127 automatically if the @samp{DISPLAY} environment variable is not set.
128
129 @item -debug-init
130 Enter the debugger if an error in the init file occurs.
131
132 @item -debug-paths
133 Displays information on how XEmacs constructs the various paths into its
134 hierarchy on startup.  (See also @pxref{Startup Paths}.)
135
136 @item -unmapped
137 Do not map the initial frame.  This is useful if you want to start up
138 XEmacs as a server (e.g. for gnuserv screens or external client widgets).
139
140 @item -no-init-file
141 @itemx -q
142 Do not load your Emacs init file.  @xref{Init File}.
143
144 @item -no-site-file
145 Do not load the site-specific init file @file{lisp/site-start.el}.
146
147 @item -no-autoloads
148 Do not load global symbol files (@file{auto-autoloads}) at startup.
149 This implies @samp{-vanilla}. 
150
151 @item -no-early-packages
152 Do not process early packages.  (For more information on startup issues
153 concerning the package system, @xref{Startup Paths}.)
154
155 @item -vanilla
156 This is equivalent to @samp{-q -no-site-file -no-early-packages}.
157
158 @item -user-init-file @var{file}
159 Load @var{file} as your Emacs init file instead of
160 @file{~/.xemacs/init.el}/@file{~/.emacs}.
161
162 @item -user-init-directory @var{directory}
163 Use @var{directory} as the location of your early package hierarchies
164 and the various user-specific initialization files.
165
166 @item -user @var{user}
167 @itemx -u @var{user}
168 Equivalent to @samp{-user-init-file ~@var{user}/.xemacs/init.el
169 -user-init-directory ~@var{user}/.xemacs}, or @samp{-user-init-file
170 ~@var{user}/.emacs -user-init-directory ~@var{user}/.xemacs}.  whichever
171 init file comes first.  @xref{Init File}.
172
173 @end table
174
175 @vindex command-line-args
176   Note that the init file can get access to the command line argument
177 values as the elements of a list in the variable
178 @code{command-line-args}.  (The arguments in the second table above will
179 already have been processed and will not be in the list.)  The init file
180 can override the normal processing of the other arguments by setting
181 this variable.
182
183   One way to use command switches is to visit many files automatically:
184
185 @example
186 xemacs *.c
187 @end example
188
189 @noindent
190 passes each @code{.c} file as a separate argument to Emacs, so that
191 Emacs visits each file (@pxref{Visiting}).
192
193   Here is an advanced example that assumes you have a Lisp program file
194 called @file{hack-c-program.el} which, when loaded, performs some useful
195 operation on the current buffer, expected to be a C program.
196
197 @example
198 xemacs -batch foo.c -l hack-c-program -f save-buffer -kill > log
199 @end example
200
201 @noindent
202 Here Emacs is told to visit @file{foo.c}, load @file{hack-c-program.el}
203 (which makes changes in the visited file), save @file{foo.c} (note that
204 @code{save-buffer} is the function that @kbd{C-x C-s} is bound to), and
205 then exit to the shell from which the command was executed.  @samp{-batch}
206 guarantees there will be no problem redirecting output to @file{log},
207 because Emacs will not assume that it has a display terminal to work
208 with.
209
210 @subsection Command Line Arguments (for XEmacs Under X)
211 @vindex frame-title-format
212 @vindex frame-icon-title-format
213 If you are running XEmacs under X, a number of options are
214 available to control color, border, and window title and icon name:
215
216 @table @samp
217 @item -title @var{title}
218 @itemx -wn @var{title}
219 @itemx -T @var{title}
220 Use @var{title} as the window title. This sets the
221 @code{frame-title-format} variable, which controls the title of the X
222 window corresponding to the selected frame.  This is the same format as
223 @code{mode-line-format}.
224
225 @item -iconname @var{title}
226 @itemx -in @var{title}
227 Use @var{title} as the icon name. This sets the
228 @code{frame-icon-title-format} variable, which controls the title of
229 the icon corresponding to the selected frame.
230
231 @item -mc @var{color}
232 Use @var{color} as the mouse color.
233
234 @item -cr @var{color}
235 Use @var{color} as the text-cursor foreground color.
236
237 @item -private
238 Install a private colormap for XEmacs.
239 @end table
240
241 In addition, XEmacs allows you to use a number of standard Xt
242 command line arguments. 
243
244 @table @samp
245
246 @item -background @var{color}
247 @itemx -bg @var{color}
248 Use @var{color} as the background color.
249
250 @item -bordercolor @var{color}
251 @itemx -bd @var{color}
252 Use @var{color} as the border color.
253
254 @item -borderwidth @var{width}
255 @itemx -bw @var{width}
256 Use @var{width} as the border width.
257
258 @item -display @var{display}
259 @itemx -d @var{display}
260 When running under the X window system, create the window containing the
261 Emacs frame on the display named @var{display}.
262
263 @item -foreground @var{color}
264 @itemx -fg @var{color}
265 Use @var{color} as the foreground color.
266
267 @item -font @var{name}
268 @itemx -fn @var{name}
269 Use @var{name} as the default font.
270
271 @item -geometry @var{spec}
272 @itemx -geom @var{spec}
273 @itemx -g @var{spec}
274 Use the geometry (window size and/or position) specified by @var{spec}.
275
276 @item -iconic
277 Start up iconified.
278
279 @item -rv
280 Bring up Emacs in reverse video.
281
282 @item -name @var{name}
283 Use the resource manager resources specified by @var{name}.
284 The default is to use the name of the program (@code{argv[0]}) as
285 the resource manager name.
286
287 @item -xrm
288 Read something into the resource database for this invocation of Emacs only.
289
290 @end table