123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- @c This is part of the XEmacs manual.
- @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995 Free Software Foundation, Inc.
- @c See file xemacs.texi for copying conditions.
- @node Entering Emacs, Exiting, Pull-down Menus, Top
- @chapter Entering and Exiting Emacs
- @cindex entering XEmacs
- @cindex starting XEmacs
- The usual way to invoke XEmacs is to type @kbd{xemacs @key{RET}} at
- the shell. XEmacs clears the screen and then displays an initial
- advisory message and copyright notice. You can begin typing XEmacs
- commands immediately afterward.
- Some operating systems insist on discarding all type-ahead when XEmacs
- starts up; they give XEmacs no way to prevent this. Therefore, it is
- advisable to wait until XEmacs clears the screen before typing your first
- editing command.
- If you run XEmacs from a shell window under the X Window System, run it
- in the background with @samp{xemacs&}. This way, XEmacs does not tie up
- the shell window, so you can use that to run other shell commands while
- XEmacs operates its own X windows. You can begin typing XEmacs commands
- as soon as you direct your keyboard input to the XEmacs frame.
- @vindex initial-major-mode
- Before Emacs reads the first command, you have not had a chance to
- give a command to specify a file to edit. Since Emacs must always have
- a current buffer for editing, it presents a buffer, by default, a buffer
- named @samp{*scratch*}. The buffer is in Lisp Interaction mode; you can
- use it to type Lisp expressions and evaluate them, or you can ignore
- that capability and simply doodle. (You can specify a different major
- mode for this buffer by setting the variable @code{initial-major-mode}
- in your init file. @xref{Init File}.)
- It is possible to specify files to be visited, Lisp files to be
- loaded, and functions to be called, by giving Emacs arguments in the
- shell command line. @xref{Command Switches}. But we don't recommend
- doing this. The feature exists mainly for compatibility with other
- editors.
- Many other editors are designed to be started afresh each time you
- want to edit. You edit one file and then exit the editor. The next
- time you want to edit either another file or the same one, you must run
- the editor again. With these editors, it makes sense to use a
- command-line argument to say which file to edit.
- But starting a new Emacs each time you want to edit a different file
- does not make sense. For one thing, this would be annoyingly slow. For
- another, this would fail to take advantage of Emacs's ability to visit
- more than one file in a single editing session. And it would lose the
- other accumulated context, such as registers, undo history, and the mark
- ring.
- The recommended way to use XEmacs is to start it only once, just
- after you log in, and do all your editing in the same Emacs session.
- Each time you want to edit a different file, you visit it with the
- existing Emacs, which eventually comes to have many files in it ready
- for editing. Usually you do not kill the Emacs until you are about to
- log out. @xref{Files}, for more information on visiting more than one
- file.
- @node Exiting, Command Switches, Entering Emacs, Top
- @section Exiting Emacs
- @cindex exiting
- @cindex killing Emacs
- @cindex suspending
- @cindex leaving Emacs
- @cindex quitting Emacs
- @cindex shrinking XEmacs frame
- There are two commands for exiting Emacs because there are two kinds
- of exiting: @dfn{suspending} Emacs and @dfn{killing} Emacs.
- @dfn{Suspending} means stopping Emacs temporarily and returning
- control to its parent process (usually a shell), allowing you to resume
- editing later in the same Emacs job, with the same buffers, same kill
- ring, same undo history, and so on. This is the usual way to exit.
- @dfn{Killing} Emacs means destroying the Emacs job. You can run Emacs
- again later, but you will get a fresh Emacs; there is no way to resume
- the same editing session after it has been killed.
- @table @kbd
- @item C-z
- Suspend Emacs or iconify a frame
- (@code{suspend-emacs-or-iconify-frame}). If used under the X window
- system, shrink the X window containing the Emacs frame to an icon (see
- below).
- @item C-x C-c
- Kill Emacs (@code{save-buffers-kill-emacs}).
- @end table
- If you use XEmacs under the X window system, @kbd{C-z} shrinks
- the X window containing the Emacs frame to an icon. The Emacs process
- is stopped temporarily, and control is returned to the window manager.
- If more than one frame is associated with the Emacs process, only the
- frame from which you used @kbd{C-z} is iconified.
- To activate the "suspended" Emacs, use the appropriate window manager
- mouse gestures. Usually left-clicking on the icon reactivates and
- reopens the X window containing the Emacs frame, but the window manager
- you use determines what exactly happens. To actually kill the Emacs
- process, use @kbd{C-x C-c} or the @b{Exit XEmacs} item on the @b{File}
- menu.
- @kindex C-z
- @findex suspend-emacs
- To suspend Emacs, type @kbd{C-z} (@code{suspend-emacs}). This takes
- you back to the shell from which you invoked Emacs. You can resume
- Emacs with the shell command @samp{%xemacs} in most common shells.
- On systems that do not support suspending programs, @kbd{C-z} starts
- an inferior shell that communicates directly with the terminal.
- Emacs waits until you exit the subshell. (The way to do that is
- probably with @kbd{C-d} or @samp{exit}, but it depends on which shell
- you use.) The only way on these systems to get back to the shell from
- which Emacs was run (to log out, for example) is to kill Emacs.
- Suspending also fails if you run Emacs under a shell that doesn't
- support suspending programs, even if the system itself does support it.
- In such a case, you can set the variable @code{cannot-suspend} to a
- non-@code{nil} value to force @kbd{C-z} to start an inferior shell.
- (One might also describe Emacs's parent shell as ``inferior'' for
- failing to support job control properly, but that is a matter of taste.)
- When Emacs communicates directly with an X server and creates its own
- dedicated X windows, @kbd{C-z} has a different meaning. Suspending an
- applications that uses its own X windows is not meaningful or useful.
- Instead, @kbd{C-z} runs the command @code{iconify-or-deiconify-frame},
- which temporarily closes up the selected Emacs frame.
- The way to get back to a shell window is with the window manager.
- @kindex C-x C-c
- @findex save-buffers-kill-emacs
- To kill Emacs, type @kbd{C-x C-c} (@code{save-buffers-kill-emacs}). A
- two-character key is used for this to make it harder to type. Selecting
- the @b{Exit XEmacs} option of the @b{File} menu is an alternate way of
- issuing the command.
- Unless a numeric argument is used, this command first offers to save any
- modified file-visiting buffers. If you do not save all buffers, you are
- asked for reconfirmation with @kbd{yes} before killing Emacs, since any
- changes not saved will be lost forever. If any subprocesses are still
- running, @kbd{C-x C-c} asks you to confirm killing them, since killing
- Emacs will kill the subprocesses immediately.
- There is no way to restart an Emacs session once you have killed it.
- You can, however, arrange for Emacs to record certain session
- information, such as which files are visited, when you kill it, so that
- the next time you restart Emacs it will try to visit the same files and
- so on.
- @c @xref{Saving Emacs Sessions}.
- The operating system usually listens for certain special characters
- whose meaning is to kill or suspend the program you are running.
- @b{This operating system feature is turned off while you are in Emacs.}
- The meanings of @kbd{C-z} and @kbd{C-x C-c} as keys in Emacs were
- inspired by the use of @kbd{C-z} and @kbd{C-c} on several operating
- systems as the characters for stopping or killing a program, but that is
- their only relationship with the operating system. You can customize
- these keys to run any commands of your choice (@pxref{Keymaps}).
|