Mercurial > emacs
annotate man/entering.texi @ 67086:7ae3d744378e
(Custom-reset-standard): Make it handle Custom group
buffers correctly. (It used to throw an error in such buffers.)
Make it ask for confirmation in group buffers and other Custom
buffers containing more than one customization item.
author | Luc Teirlinck <teirllm@auburn.edu> |
---|---|
date | Tue, 22 Nov 2005 23:28:28 +0000 |
parents | 3723093a21fd |
children | eab2da67a471 2d92f5c9d6ae |
rev | line source |
---|---|
25829 | 1 @c This is part of the Emacs manual. |
64890
3723093a21fd
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
59950
diff
changeset
|
2 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 2002, 2003, 2004, |
3723093a21fd
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
59950
diff
changeset
|
3 @c 2005 Free Software Foundation, Inc. |
25829 | 4 @c See file emacs.texi for copying conditions. |
5 @node Entering Emacs, Exiting, Text Characters, Top | |
6 @chapter Entering and Exiting Emacs | |
7 @cindex entering Emacs | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46913
diff
changeset
|
8 @cindex starting Emacs |
25829 | 9 |
29107 | 10 The usual way to invoke Emacs is with the shell command @command{emacs}. |
25829 | 11 Emacs clears the screen and then displays an initial help message and |
12 copyright notice. Some operating systems discard all type-ahead when | |
13 Emacs starts up; they give Emacs no way to prevent this. Therefore, it | |
14 is advisable to wait until Emacs clears the screen before typing your | |
15 first editing command. | |
16 | |
17 If you run Emacs from a shell window under the X Window System, run it | |
29107 | 18 in the background with @command{emacs&}. This way, Emacs does not tie up |
25829 | 19 the shell window, so you can use that to run other shell commands while |
20 Emacs operates its own X windows. You can begin typing Emacs commands | |
21 as soon as you direct your keyboard input to the Emacs frame. | |
22 | |
23 @vindex initial-major-mode | |
38954 | 24 When Emacs starts up, it creates a buffer named @samp{*scratch*}. |
25829 | 25 That's the buffer you start out in. The @samp{*scratch*} buffer uses Lisp |
26 Interaction mode; you can use it to type Lisp expressions and evaluate | |
27 them, or you can ignore that capability and simply doodle. (You can | |
28 specify a different major mode for this buffer by setting the variable | |
29 @code{initial-major-mode} in your init file. @xref{Init File}.) | |
30 | |
31 It is possible to specify files to be visited, Lisp files to be | |
32 loaded, and functions to be called, by giving Emacs arguments in the | |
58789
c8e9116cff8b
Rename Command Line to Emacs Invocation.
Richard M. Stallman <rms@gnu.org>
parents:
58759
diff
changeset
|
33 shell command line. @xref{Emacs Invocation}. But we don't recommend |
25829 | 34 doing this. The feature exists mainly for compatibility with other |
35 editors. | |
36 | |
37 Many other editors are designed to be started afresh each time you | |
38 want to edit. You edit one file and then exit the editor. The next | |
39 time you want to edit either another file or the same one, you must run | |
40 the editor again. With these editors, it makes sense to use a | |
41 command-line argument to say which file to edit. | |
42 | |
43 But starting a new Emacs each time you want to edit a different file | |
59950
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
44 does not make sense. This would fail to take advantage of Emacs's |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
45 ability to visit more than one file in a single editing session, and |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
46 it would lose the other accumulated context, such as the kill ring, |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
47 registers, undo history, and mark ring, that are useful for operating |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
48 on multiple files. |
25829 | 49 |
50 The recommended way to use GNU Emacs is to start it only once, just | |
51 after you log in, and do all your editing in the same Emacs session. | |
52 Each time you want to edit a different file, you visit it with the | |
53 existing Emacs, which eventually comes to have many files in it ready | |
54 for editing. Usually you do not kill the Emacs until you are about to | |
55 log out. @xref{Files}, for more information on visiting more than one | |
56 file. | |
57 | |
46913
861d4dd87bd7
Mention emacsclient, with xref.
Richard M. Stallman <rms@gnu.org>
parents:
38954
diff
changeset
|
58 If you want to edit a file from another program and already have |
861d4dd87bd7
Mention emacsclient, with xref.
Richard M. Stallman <rms@gnu.org>
parents:
38954
diff
changeset
|
59 Emacs running, you can use the @command{emacsclient} program to open a |
861d4dd87bd7
Mention emacsclient, with xref.
Richard M. Stallman <rms@gnu.org>
parents:
38954
diff
changeset
|
60 file in the already running Emacs. @xref{Emacs Server}, for more |
861d4dd87bd7
Mention emacsclient, with xref.
Richard M. Stallman <rms@gnu.org>
parents:
38954
diff
changeset
|
61 information on editing files with Emacs from other programs. |
861d4dd87bd7
Mention emacsclient, with xref.
Richard M. Stallman <rms@gnu.org>
parents:
38954
diff
changeset
|
62 |
56810
24bffa640391
Adapt sectioning in Info to the node structure.
Luc Teirlinck <teirllm@auburn.edu>
parents:
52401
diff
changeset
|
63 @ifnottex |
24bffa640391
Adapt sectioning in Info to the node structure.
Luc Teirlinck <teirllm@auburn.edu>
parents:
52401
diff
changeset
|
64 @raisesections |
24bffa640391
Adapt sectioning in Info to the node structure.
Luc Teirlinck <teirllm@auburn.edu>
parents:
52401
diff
changeset
|
65 @end ifnottex |
24bffa640391
Adapt sectioning in Info to the node structure.
Luc Teirlinck <teirllm@auburn.edu>
parents:
52401
diff
changeset
|
66 |
25829 | 67 @node Exiting, Basic, Entering Emacs, Top |
68 @section Exiting Emacs | |
69 @cindex exiting | |
70 @cindex killing Emacs | |
71 @cindex suspending | |
72 @cindex leaving Emacs | |
73 @cindex quitting Emacs | |
74 | |
59950
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
75 There are two commands for exiting Emacs because there are three |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
76 kinds of exiting: @dfn{suspending} Emacs, @dfn{Iconifying} Emacs, and |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
77 @dfn{killing} Emacs. |
25829 | 78 |
79 @dfn{Suspending} means stopping Emacs temporarily and returning | |
80 control to its parent process (usually a shell), allowing you to resume | |
81 editing later in the same Emacs job, with the same buffers, same kill | |
59950
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
82 ring, same undo history, and so on. This is the usual way to exit Emacs |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
83 when running on a text terminal. |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
84 |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
85 @dfn{Iconifying} means replacing the Emacs frame with a small box |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
86 somewhere on the screen. This is the usual way to exit Emacs when you're |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
87 using a graphics terminal. |
25829 | 88 |
89 @dfn{Killing} Emacs means destroying the Emacs job. You can run Emacs | |
90 again later, but you will get a fresh Emacs; there is no way to resume | |
91 the same editing session after it has been killed. | |
92 | |
93 @table @kbd | |
94 @item C-z | |
95 Suspend Emacs (@code{suspend-emacs}) or iconify a frame | |
96 (@code{iconify-or-deiconify-frame}). | |
97 @item C-x C-c | |
98 Kill Emacs (@code{save-buffers-kill-emacs}). | |
99 @end table | |
100 | |
101 @kindex C-z | |
102 @findex suspend-emacs | |
59950
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
103 To suspend or iconify Emacs, type @kbd{C-z} (@code{suspend-emacs}). |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
104 On text terminals, this suspends Emacs. On graphics terminals, |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
105 it iconifies the Emacs frame. |
25829 | 106 |
59950
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
107 Suspending Emacs takes you back to the shell from which you invoked |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
108 Emacs. You can resume Emacs with the shell command @command{%emacs} |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
109 in most common shells. On systems that don't support suspending |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
110 programs, @kbd{C-z} starts an inferior shell that communicates |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
111 directly with the terminal. Emacs waits until you exit the subshell. |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
112 (The way to do that is probably with @kbd{C-d} or @command{exit}, but |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
113 it depends on which shell you use.) The only way on these systems to |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
114 get back to the shell from which Emacs was run (to log out, for |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
115 example) is to kill Emacs. |
25829 | 116 |
59950
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
117 Suspending can fail if you run Emacs under a shell that doesn't |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
118 support suspending programs, even if the system itself does support |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
119 it. In such a case, you can set the variable @code{cannot-suspend} to |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
120 a non-@code{nil} value to force @kbd{C-z} to start an inferior shell. |
25829 | 121 (One might also describe Emacs's parent shell as ``inferior'' for |
59950
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
122 failing to support job control properly, but that is a matter of |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
123 taste.) |
25829 | 124 |
59950
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
125 On graphics terminals, @kbd{C-z} has a different meaning: it runs |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
126 the command @code{iconify-or-deiconify-frame}, which temporarily |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
127 iconifies (or ``minimizes'') the selected Emacs frame |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
128 (@pxref{Frames}). Then you can use the window manager to get back to |
e0bfdf477815
(Entering Emacs): Update rationale at start.
Richard M. Stallman <rms@gnu.org>
parents:
58789
diff
changeset
|
129 a shell window. |
25829 | 130 |
131 @kindex C-x C-c | |
132 @findex save-buffers-kill-emacs | |
38954 | 133 To exit and kill Emacs, type @kbd{C-x C-c} |
134 (@code{save-buffers-kill-emacs}). A two-character key is used for | |
135 this to make it harder to type by accident. This command first offers | |
136 to save any modified file-visiting buffers. If you do not save them | |
137 all, it asks for reconfirmation with @kbd{yes} before killing Emacs, | |
138 since any changes not saved will be lost forever. Also, if any | |
139 subprocesses are still running, @kbd{C-x C-c} asks for confirmation | |
140 about them, since killing Emacs will also kill the subprocesses. | |
25829 | 141 |
38920
caf015ed2aea
Document confirm-kill-emacs.
Eli Zaretskii <eliz@gnu.org>
parents:
38172
diff
changeset
|
142 @vindex confirm-kill-emacs |
caf015ed2aea
Document confirm-kill-emacs.
Eli Zaretskii <eliz@gnu.org>
parents:
38172
diff
changeset
|
143 If the value of the variable @code{confirm-kill-emacs} is |
caf015ed2aea
Document confirm-kill-emacs.
Eli Zaretskii <eliz@gnu.org>
parents:
38172
diff
changeset
|
144 non-@code{nil}, @kbd{C-x C-c} assumes that its value is a predicate |
caf015ed2aea
Document confirm-kill-emacs.
Eli Zaretskii <eliz@gnu.org>
parents:
38172
diff
changeset
|
145 function, and calls that function. If the result is non-@code{nil}, the |
caf015ed2aea
Document confirm-kill-emacs.
Eli Zaretskii <eliz@gnu.org>
parents:
38172
diff
changeset
|
146 session is killed, otherwise Emacs continues to run. One convenient |
caf015ed2aea
Document confirm-kill-emacs.
Eli Zaretskii <eliz@gnu.org>
parents:
38172
diff
changeset
|
147 function to use as the value of @code{confirm-kill-emacs} is the |
caf015ed2aea
Document confirm-kill-emacs.
Eli Zaretskii <eliz@gnu.org>
parents:
38172
diff
changeset
|
148 function @code{yes-or-no-p}. The default value of |
caf015ed2aea
Document confirm-kill-emacs.
Eli Zaretskii <eliz@gnu.org>
parents:
38172
diff
changeset
|
149 @code{confirm-kill-emacs} is @code{nil}. |
caf015ed2aea
Document confirm-kill-emacs.
Eli Zaretskii <eliz@gnu.org>
parents:
38172
diff
changeset
|
150 |
38954 | 151 There is no way to resume an Emacs session once you have killed it. |
25829 | 152 You can, however, arrange for Emacs to record certain session |
38954 | 153 information when you kill it, such as which files are visited, so that |
154 the next time you start Emacs it will try to visit the same files and | |
25829 | 155 so on. @xref{Saving Emacs Sessions}. |
156 | |
157 The operating system usually listens for certain special characters | |
158 whose meaning is to kill or suspend the program you are running. | |
159 @b{This operating system feature is turned off while you are in Emacs.} | |
160 The meanings of @kbd{C-z} and @kbd{C-x C-c} as keys in Emacs were | |
161 inspired by the use of @kbd{C-z} and @kbd{C-c} on several operating | |
162 systems as the characters for stopping or killing a program, but that is | |
163 their only relationship with the operating system. You can customize | |
164 these keys to run any commands of your choice (@pxref{Keymaps}). | |
52401 | 165 |
56810
24bffa640391
Adapt sectioning in Info to the node structure.
Luc Teirlinck <teirllm@auburn.edu>
parents:
52401
diff
changeset
|
166 @ifnottex |
24bffa640391
Adapt sectioning in Info to the node structure.
Luc Teirlinck <teirllm@auburn.edu>
parents:
52401
diff
changeset
|
167 @lowersections |
24bffa640391
Adapt sectioning in Info to the node structure.
Luc Teirlinck <teirllm@auburn.edu>
parents:
52401
diff
changeset
|
168 @end ifnottex |
24bffa640391
Adapt sectioning in Info to the node structure.
Luc Teirlinck <teirllm@auburn.edu>
parents:
52401
diff
changeset
|
169 |
52401 | 170 @ignore |
171 arch-tag: df798d8b-f253-4113-b585-f528f078a944 | |
172 @end ignore |