SXEmacs supports command line arguments you can use to request various actions when invoking Emacs. The commands are for compatibility with other editors and for sophisticated activities. If you are using SXEmacs under the X window system, you can also use a number of standard Xt command line arguments. Command line arguments are not usually needed for editing with Emacs; new users can skip this section.
Many editors are designed to be started afresh each time you want to edit. You start the editor to edit one file; then exit the editor. The next time you want to edit either another file or the same one, you start the editor again. Under these circumstances, it makes sense to use a command line argument to say which file to edit.
The recommended way to use SXEmacs is to start it only once, just after you log in, and do all your editing in the same Emacs process. Each time you want to edit a file, you visit it using the existing Emacs. Emacs creates a new buffer for each file, and (unless you kill some of the buffers) Emacs eventually has many files in it ready for editing. Usually you do not kill the Emacs process until you are about to log out. Since you usually read files by typing commands to Emacs, command line arguments for specifying a file when Emacs is started are seldom needed.
Emacs accepts command-line arguments that specify files to visit, functions to call, and other activities and operating modes. If you are running SXEmacs under the X window system, a number of standard Xt command line arguments are available, as well as a few X parameters that are SXEmacs-specific.
Options with long names with a single initial hyphen are also recognized with the GNU double initial hyphen syntax. (The reverse is not true.)
The following subsections list:
Command line arguments are processed in the order they appear on the command line; however, certain arguments (the ones in the second table) must be at the front of the list if they are used.
Here are the arguments allowed:
find-file. See Visiting.
find-file, then go to line number
linenum in it.
load.
See Lisp Libraries.
% sxemacs -version
SXEmacs: steve@sxemacs.org--2006/sxemacs--main--22.1.4--patch-79,
built Sun Apr 9 05:36:50 2006 on bastard
The following arguments are recognized only at the beginning of the command line. If more than one of them appears, they must appear in the order in which they appear in this table.
stderr only what would normally be printed
in the echo area under program control.
Batch mode is used for running programs written in Emacs Lisp from shell scripts, makefiles, and so on. Normally the ‘-l’ switch or ‘-f’ switch will be used as well, to invoke a Lisp program to do the batch processing.
‘-batch’ implies ‘-q’ (do not load an init file). It also
causes Emacs to kill itself after all command switches have been
processed. In addition, auto-saving is not done except in buffers for
which it has been explicitly requested.
Note that the init file can get access to the command line argument
values as the elements of a list in the variable
command-line-args. (The arguments in the second table above will
already have been processed and will not be in the list.) The init file
can override the normal processing of the other arguments by setting
this variable.
One way to use command switches is to visit many files automatically:
sxemacs *.c
passes each .c file as a separate argument to Emacs, so that
Emacs visits each file (see Visiting).
Here is an advanced example that assumes you have a Lisp program file called hack-c-program.el which, when loaded, performs some useful operation on the current buffer, expected to be a C program.
sxemacs -batch foo.c -l hack-c-program -f save-buffer -kill > log
Here Emacs is told to visit foo.c, load hack-c-program.el
(which makes changes in the visited file), save foo.c (note that
save-buffer is the function that C-x C-s is bound to), and
then exit to the shell from which the command was executed. ‘-batch’
guarantees there will be no problem redirecting output to log,
because Emacs will not assume that it has a display terminal to work
with.
If you are running SXEmacs under X, a number of options are available to control color, border, and window title and icon name:
frame-title-format variable, which controls the title of the X
window corresponding to the selected frame. This is the same format as
mode-line-format.
frame-icon-title-format variable, which controls the title of
the icon corresponding to the selected frame.
In addition, SXEmacs allows you to use a number of standard Xt command line arguments.
argv[0]) as
the resource manager name.