annotate man/entering.texi @ 25976:8565fbac98d7

Use "pop3" as the POP service name on all platforms, instead of using "pop" on Unix and "pop3" on Windows NT. "pop3" has been the standard service name since RFC 1340 was published in July 1992, so I think it's safe to start using it by default.
author Gerd Moellmann <gerd@gnu.org>
date Sun, 10 Oct 1999 23:07:36 +0000
parents ac7e9e5e2ccb
children 203ba1f77b7b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1 @c This is part of the Emacs manual.
Dave Love <fx@gnu.org>
parents:
diff changeset
2 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995 Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
3 @c See file emacs.texi for copying conditions.
Dave Love <fx@gnu.org>
parents:
diff changeset
4 @node Entering Emacs, Exiting, Text Characters, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
5 @chapter Entering and Exiting Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
6 @cindex entering Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
7 @cindex starting Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
8
Dave Love <fx@gnu.org>
parents:
diff changeset
9 The usual way to invoke Emacs is with the shell command @samp{emacs}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10 Emacs clears the screen and then displays an initial help message and
Dave Love <fx@gnu.org>
parents:
diff changeset
11 copyright notice. Some operating systems discard all type-ahead when
Dave Love <fx@gnu.org>
parents:
diff changeset
12 Emacs starts up; they give Emacs no way to prevent this. Therefore, it
Dave Love <fx@gnu.org>
parents:
diff changeset
13 is advisable to wait until Emacs clears the screen before typing your
Dave Love <fx@gnu.org>
parents:
diff changeset
14 first editing command.
Dave Love <fx@gnu.org>
parents:
diff changeset
15
Dave Love <fx@gnu.org>
parents:
diff changeset
16 If you run Emacs from a shell window under the X Window System, run it
Dave Love <fx@gnu.org>
parents:
diff changeset
17 in the background with @samp{emacs&}. This way, Emacs does not tie up
Dave Love <fx@gnu.org>
parents:
diff changeset
18 the shell window, so you can use that to run other shell commands while
Dave Love <fx@gnu.org>
parents:
diff changeset
19 Emacs operates its own X windows. You can begin typing Emacs commands
Dave Love <fx@gnu.org>
parents:
diff changeset
20 as soon as you direct your keyboard input to the Emacs frame.
Dave Love <fx@gnu.org>
parents:
diff changeset
21
Dave Love <fx@gnu.org>
parents:
diff changeset
22 @vindex initial-major-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
23 When Emacs starts up, it makes a buffer named @samp{*scratch*}.
Dave Love <fx@gnu.org>
parents:
diff changeset
24 That's the buffer you start out in. The @samp{*scratch*} buffer uses Lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
25 Interaction mode; you can use it to type Lisp expressions and evaluate
Dave Love <fx@gnu.org>
parents:
diff changeset
26 them, or you can ignore that capability and simply doodle. (You can
Dave Love <fx@gnu.org>
parents:
diff changeset
27 specify a different major mode for this buffer by setting the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
28 @code{initial-major-mode} in your init file. @xref{Init File}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
29
Dave Love <fx@gnu.org>
parents:
diff changeset
30 It is possible to specify files to be visited, Lisp files to be
Dave Love <fx@gnu.org>
parents:
diff changeset
31 loaded, and functions to be called, by giving Emacs arguments in the
Dave Love <fx@gnu.org>
parents:
diff changeset
32 shell command line. @xref{Command Arguments}. But we don't recommend
Dave Love <fx@gnu.org>
parents:
diff changeset
33 doing this. The feature exists mainly for compatibility with other
Dave Love <fx@gnu.org>
parents:
diff changeset
34 editors.
Dave Love <fx@gnu.org>
parents:
diff changeset
35
Dave Love <fx@gnu.org>
parents:
diff changeset
36 Many other editors are designed to be started afresh each time you
Dave Love <fx@gnu.org>
parents:
diff changeset
37 want to edit. You edit one file and then exit the editor. The next
Dave Love <fx@gnu.org>
parents:
diff changeset
38 time you want to edit either another file or the same one, you must run
Dave Love <fx@gnu.org>
parents:
diff changeset
39 the editor again. With these editors, it makes sense to use a
Dave Love <fx@gnu.org>
parents:
diff changeset
40 command-line argument to say which file to edit.
Dave Love <fx@gnu.org>
parents:
diff changeset
41
Dave Love <fx@gnu.org>
parents:
diff changeset
42 But starting a new Emacs each time you want to edit a different file
Dave Love <fx@gnu.org>
parents:
diff changeset
43 does not make sense. For one thing, this would be annoyingly slow. For
Dave Love <fx@gnu.org>
parents:
diff changeset
44 another, this would fail to take advantage of Emacs's ability to visit
Dave Love <fx@gnu.org>
parents:
diff changeset
45 more than one file in a single editing session. And it would lose the
Dave Love <fx@gnu.org>
parents:
diff changeset
46 other accumulated context, such as registers, undo history, and the mark
Dave Love <fx@gnu.org>
parents:
diff changeset
47 ring.
Dave Love <fx@gnu.org>
parents:
diff changeset
48
Dave Love <fx@gnu.org>
parents:
diff changeset
49 The recommended way to use GNU Emacs is to start it only once, just
Dave Love <fx@gnu.org>
parents:
diff changeset
50 after you log in, and do all your editing in the same Emacs session.
Dave Love <fx@gnu.org>
parents:
diff changeset
51 Each time you want to edit a different file, you visit it with the
Dave Love <fx@gnu.org>
parents:
diff changeset
52 existing Emacs, which eventually comes to have many files in it ready
Dave Love <fx@gnu.org>
parents:
diff changeset
53 for editing. Usually you do not kill the Emacs until you are about to
Dave Love <fx@gnu.org>
parents:
diff changeset
54 log out. @xref{Files}, for more information on visiting more than one
Dave Love <fx@gnu.org>
parents:
diff changeset
55 file.
Dave Love <fx@gnu.org>
parents:
diff changeset
56
Dave Love <fx@gnu.org>
parents:
diff changeset
57 @node Exiting, Basic, Entering Emacs, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
58 @section Exiting Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
59 @cindex exiting
Dave Love <fx@gnu.org>
parents:
diff changeset
60 @cindex killing Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
61 @cindex suspending
Dave Love <fx@gnu.org>
parents:
diff changeset
62 @cindex leaving Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
63 @cindex quitting Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
64
Dave Love <fx@gnu.org>
parents:
diff changeset
65 There are two commands for exiting Emacs because there are two kinds
Dave Love <fx@gnu.org>
parents:
diff changeset
66 of exiting: @dfn{suspending} Emacs and @dfn{killing} Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
67
Dave Love <fx@gnu.org>
parents:
diff changeset
68 @dfn{Suspending} means stopping Emacs temporarily and returning
Dave Love <fx@gnu.org>
parents:
diff changeset
69 control to its parent process (usually a shell), allowing you to resume
Dave Love <fx@gnu.org>
parents:
diff changeset
70 editing later in the same Emacs job, with the same buffers, same kill
Dave Love <fx@gnu.org>
parents:
diff changeset
71 ring, same undo history, and so on. This is the usual way to exit.
Dave Love <fx@gnu.org>
parents:
diff changeset
72
Dave Love <fx@gnu.org>
parents:
diff changeset
73 @dfn{Killing} Emacs means destroying the Emacs job. You can run Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
74 again later, but you will get a fresh Emacs; there is no way to resume
Dave Love <fx@gnu.org>
parents:
diff changeset
75 the same editing session after it has been killed.
Dave Love <fx@gnu.org>
parents:
diff changeset
76
Dave Love <fx@gnu.org>
parents:
diff changeset
77 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
78 @item C-z
Dave Love <fx@gnu.org>
parents:
diff changeset
79 Suspend Emacs (@code{suspend-emacs}) or iconify a frame
Dave Love <fx@gnu.org>
parents:
diff changeset
80 (@code{iconify-or-deiconify-frame}).
Dave Love <fx@gnu.org>
parents:
diff changeset
81 @item C-x C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
82 Kill Emacs (@code{save-buffers-kill-emacs}).
Dave Love <fx@gnu.org>
parents:
diff changeset
83 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
84
Dave Love <fx@gnu.org>
parents:
diff changeset
85 @kindex C-z
Dave Love <fx@gnu.org>
parents:
diff changeset
86 @findex suspend-emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
87 To suspend Emacs, type @kbd{C-z} (@code{suspend-emacs}). This takes
Dave Love <fx@gnu.org>
parents:
diff changeset
88 you back to the shell from which you invoked Emacs. You can resume
Dave Love <fx@gnu.org>
parents:
diff changeset
89 Emacs with the shell command @samp{%emacs} in most common shells.
Dave Love <fx@gnu.org>
parents:
diff changeset
90
Dave Love <fx@gnu.org>
parents:
diff changeset
91 On systems that do not support suspending programs, @kbd{C-z} starts
Dave Love <fx@gnu.org>
parents:
diff changeset
92 an inferior shell that communicates directly with the terminal.
Dave Love <fx@gnu.org>
parents:
diff changeset
93 Emacs waits until you exit the subshell. (The way to do that is
Dave Love <fx@gnu.org>
parents:
diff changeset
94 probably with @kbd{C-d} or @samp{exit}, but it depends on which shell
Dave Love <fx@gnu.org>
parents:
diff changeset
95 you use.) The only way on these systems to get back to the shell from
Dave Love <fx@gnu.org>
parents:
diff changeset
96 which Emacs was run (to log out, for example) is to kill Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
97
Dave Love <fx@gnu.org>
parents:
diff changeset
98 Suspending also fails if you run Emacs under a shell that doesn't
Dave Love <fx@gnu.org>
parents:
diff changeset
99 support suspending programs, even if the system itself does support it.
Dave Love <fx@gnu.org>
parents:
diff changeset
100 In such a case, you can set the variable @code{cannot-suspend} to a
Dave Love <fx@gnu.org>
parents:
diff changeset
101 non-@code{nil} value to force @kbd{C-z} to start an inferior shell.
Dave Love <fx@gnu.org>
parents:
diff changeset
102 (One might also describe Emacs's parent shell as ``inferior'' for
Dave Love <fx@gnu.org>
parents:
diff changeset
103 failing to support job control properly, but that is a matter of taste.)
Dave Love <fx@gnu.org>
parents:
diff changeset
104
Dave Love <fx@gnu.org>
parents:
diff changeset
105 When Emacs communicates directly with an X server and creates its own
Dave Love <fx@gnu.org>
parents:
diff changeset
106 dedicated X windows, @kbd{C-z} has a different meaning. Suspending an
Dave Love <fx@gnu.org>
parents:
diff changeset
107 applications that uses its own X windows is not meaningful or useful.
Dave Love <fx@gnu.org>
parents:
diff changeset
108 Instead, @kbd{C-z} runs the command @code{iconify-or-deiconify-frame},
Dave Love <fx@gnu.org>
parents:
diff changeset
109 which temporarily closes up the selected Emacs frame (@pxref{Frames}).
Dave Love <fx@gnu.org>
parents:
diff changeset
110 The way to get back to a shell window is with the window manager.
Dave Love <fx@gnu.org>
parents:
diff changeset
111
Dave Love <fx@gnu.org>
parents:
diff changeset
112 @kindex C-x C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
113 @findex save-buffers-kill-emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
114 To kill Emacs, type @kbd{C-x C-c} (@code{save-buffers-kill-emacs}). A
Dave Love <fx@gnu.org>
parents:
diff changeset
115 two-character key is used for this to make it harder to type. This
Dave Love <fx@gnu.org>
parents:
diff changeset
116 command first offers to save any modified file-visiting buffers. If you
Dave Love <fx@gnu.org>
parents:
diff changeset
117 do not save them all, it asks for reconfirmation with @kbd{yes} before
Dave Love <fx@gnu.org>
parents:
diff changeset
118 killing Emacs, since any changes not saved will be lost forever. Also,
Dave Love <fx@gnu.org>
parents:
diff changeset
119 if any subprocesses are still running, @kbd{C-x C-c} asks for
Dave Love <fx@gnu.org>
parents:
diff changeset
120 confirmation about them, since killing Emacs will kill the subprocesses
Dave Love <fx@gnu.org>
parents:
diff changeset
121 immediately.
Dave Love <fx@gnu.org>
parents:
diff changeset
122
Dave Love <fx@gnu.org>
parents:
diff changeset
123 There is no way to restart an Emacs session once you have killed it.
Dave Love <fx@gnu.org>
parents:
diff changeset
124 You can, however, arrange for Emacs to record certain session
Dave Love <fx@gnu.org>
parents:
diff changeset
125 information, such as which files are visited, when you kill it, so that
Dave Love <fx@gnu.org>
parents:
diff changeset
126 the next time you restart Emacs it will try to visit the same files and
Dave Love <fx@gnu.org>
parents:
diff changeset
127 so on. @xref{Saving Emacs Sessions}.
Dave Love <fx@gnu.org>
parents:
diff changeset
128
Dave Love <fx@gnu.org>
parents:
diff changeset
129 The operating system usually listens for certain special characters
Dave Love <fx@gnu.org>
parents:
diff changeset
130 whose meaning is to kill or suspend the program you are running.
Dave Love <fx@gnu.org>
parents:
diff changeset
131 @b{This operating system feature is turned off while you are in Emacs.}
Dave Love <fx@gnu.org>
parents:
diff changeset
132 The meanings of @kbd{C-z} and @kbd{C-x C-c} as keys in Emacs were
Dave Love <fx@gnu.org>
parents:
diff changeset
133 inspired by the use of @kbd{C-z} and @kbd{C-c} on several operating
Dave Love <fx@gnu.org>
parents:
diff changeset
134 systems as the characters for stopping or killing a program, but that is
Dave Love <fx@gnu.org>
parents:
diff changeset
135 their only relationship with the operating system. You can customize
Dave Love <fx@gnu.org>
parents:
diff changeset
136 these keys to run any commands of your choice (@pxref{Keymaps}).