home *** CD-ROM | disk | FTP | other *** search
- This describes the sequence of Emacs start-up actions, including the meaning
- of all the command-line options. It was written by Joe Wells.
-
- 1. These command line switches are handled, only if they appear before
- all other command line arguments, and only if they appear in this
- order:
-
- `-map'. Only under VMS. Instead of "undumping", under VMS the
- contents of a dump file are mapped over a section of memory (very
- quickly initializing lots of variables). You would not normally
- use this options explicitly; it is given automatically by the
- command file that implements the `emacs' command.
-
- `-t'. The next argument is treated as the name of a terminal to use
- instead of whatever is connected to the stdin, stdout, and stderr
- FILE pointers.
-
- `-display' (synonym: `-d'). The next argument is treated as the
- name of an X Window System server with which to connect. This
- overrides the DISPLAY environment variable.
-
- `-nw'. This means don't connect to an X Window server even if the
- DISPLAY environment variable was set or the `-display' switch was
- specified. Instead, Emacs talks to a regular dumb terminal.
-
- `-batch'. Run noninteractively. This disables any full screen
- interaction either with a dumb terminal or with a window system.
- In addition, Emacs will die after processing all command line
- arguments. The variable `noninteractive' is t.
-
- All of Emacs's internal data structures are initialized between steps 2
- and 5.
-
- 2. The `*scratch*' buffer is created and its value of `default-directory'
- is set from the result of calling the `getwd' library routine.
- (getwd does what the `pwd' program does.)
-
- 3. If X11 is being used, Emacs determines the name under which it looks
- for X resource values. (I haven't checked how it does this under
- X10.)
-
- 1. If there is a `-rn' command line switch, it is handled now, no
- matter where it is on the command line. (Later it will be
- processed again and ignored.) The next argument is used as
- Emacs's resource name.
-
- 2. If the `-rn' switch was missing, Emacs looks for the WM_RES_NAME
- environment variable.
-
- 3. If neither of the previous two steps succeed, Emacs uses the
- filename with which it was invoked as its resource name.
-
- 4. If X11 is being used, these command line switches are handled now,
- no matter where they appear in the command line. (Under X10, they
- are not handled until step 13.) WARNING: this can cause strange
- interactions with the processing of the remaining command line
- arguments in step 13.
-
- In addition, under both X11 and X10, X resources (ie. the stuff in
- an `.Xdefaults' file) are handled now. Command line switches take
- precedence over resources.
-
- After each command line switch are given the equivalent resource
- names in this format: (X10 name / X11 instance name / X11 class name).
-
- `-r'. Reverse video. (ReverseVideo/reverseVideo/ReverseVideo)
- `-font' (synonym: `-fn'). Font. (BodyFont/font/Font)
- `-wn'. Window name (X11 only). (/title/Title)
- `-in'. Icon name (X11 only). (/iconName/Title)
- `-i'. Use built-in icon bitmap. (BitMapIcon//)
-
- `-b'. Border width (in pixels).
- (BorderWidth/borderWidth/BorderWidth)
-
- `-ib'. Internal border width (in pixels) (default: 1).
- (/internalBorder/BorderWidth)
-
- `-xrm RESOURCESTRING'. Specifies a resource name and value
- that overrides any other value in the X server for that name.
- This is useful also for setting parameters that don't have their
- own specific options.
-
- `-geometry' (synonym: `-w'). Window shape and size. `-geometry' is
- X11 only, but its synonym `-w' was available under X10.
- (/geometry/Geometry)
-
- Color options only:
-
- `-fg'. Foreground color. (Foreground/foreground/Foreground)
- `-bg'. Background color. (Background/background/Background)
- `-bd'. Border color. (Border/borderColor/BorderColor)
- `-cr'. Cursor color. (Cursor/cursorColor/Foreground)
- `-ms'. Mouse pointer color. (Mouse/pointerColor/Foreground)
-
- In addition, under X10, the resource `Keymap' was handled now.
-
- 5. If your Emacs isn't dumped, the default Lisp libraries are
- loaded now.
-
- 6. Emacs enters a recursive edit. The first time Emacs does a
- recursive edit, steps 7 through 15 are followed, and then Emacs
- enters its normal editing mode.
-
- 7. If the environment variable PWD exists, the value of
- `default-directory' in the `*scratch*' buffer is set to the value of
- PWD. This often causes problems and confusion when the value of PWD
- doesn't actually contain the pathname of the current directory.
-
- 8. Now the `-no-init-file' (synonym: `-q') and `-user' (synonym: `-u')
- command line switches are handled. They must follow the switches
- mentioned in step 1, and must precede any other command line
- arguments. Actually, both of these options can be specified;
- whichever is last on the command line wins.
-
- 9. The user's `.emacs' file is loaded now, if the `-no-init-file'
- option was not specified. If the `-user' option was specified,
- that user's init file is loaded instead. This file is named
- `.emacs' in the user's home directory. If no such file exists,
- this step has no effect.
-
- 10. The system wide `default.el' file is loaded now, if the variable
- `inhibit-default-init' is nil. The user can set this variable in the
- `.emacs' file to skip this step.
-
- 11. If the *scratch* buffer still exists now, the value of
- `initial-major-mode' is called as a function in this buffer.
- Normally, this puts this buffer in Lisp Interaction mode.
-
- 12. Now the terminal/window-system setup file is loaded. The name of
- this file is determined as follows:
-
- 1. It starts with the value of `term-file-prefix'. Normally this is
- `term/', but the user can set it to another value. If this
- variable is nil, this entire step is skipped.
-
- 2. For a window system, the prefix is followed by the name of the
- value of the variable `window-system', followed by `-win'. For X
- Windows, this means the name is `term/x-win'.
-
- 3. For a terminal, the prefix is followed by the value of the
- environment variable TERM, for example, `term/vt200'. If Emacs
- cannot find such a file to load, it retries by stripping off
- suffixes that begin with a hyphen. For example, if TERM is
- `vt200-40', first Emacs will try `term/vt200-40', and if that
- fails it will try `term/vt200'.
-
- 13. The rest of the command line arguments are handled at this point, in
- the order they appear:
-
- `-funcall' (synonyms: `-f', `-e'). The next argument is treated as
- the name of a function, which is called with no arguments.
-
- `-load' (synonym: `-l'). The next argument is treated as the name
- of a file to load. NOTE: the value of the variable `load-path'
- will be restored after this file is done loading. Thus, trying
- to change `load-path' in such a file will fail!!
-
- `-kill'. When this argument is handled, Emacs kills itself.
-
- `+DDD', where D is a digit. DDD is used as a line number to go to.
- When the next ordinary file argument on the command line is
- handled, Emacs positions point in that file on line DDD.
-
- An ordinary filename. Emacs edits this file using the function
- `find-file'. If the filename is not an absolute filename, it is
- expanded relative to the value that default-directory in the
- `*scratch*' buffer had at the beginning of step 11. The buffer
- visiting this file becomes the current buffer.
-
- `-insert' (synonym: `-i'). The next argument is treated as the name
- of a file. This file is inserted in the current buffer.
- Initially, this is the `*scratch*' buffer. Otherwise it is the
- buffer visiting the file most recently specified on the command
- line.
-
- Other command line switches may have been created by modifying the
- value of the variable `command-switch-alist'. If X Windows is being
- used, all X-specific switches mentioned above in steps 3 and 4 will
- be processed. Under X11, they will have already been handled, and
- will be ignored now. Under X10, they are being handled for the
- first time.
-
- 14. The values of the variables `term-setup-hook' and `window-setup-hook'
- are called as functions with no arguments, in the order listed.
-
- 15. If the user did not specify any of the command line options handled
- in step 13, and the variable `inhibit-startup-message' is still nil,
- the familiar Emacs startup message is displayed.
-
-
-