]> code.delx.au - gnu-emacs/blob - doc/emacs/entering.texi
a0122970865d5d63c7933693edf4c5470717bac5
[gnu-emacs] / doc / emacs / entering.texi
1 @c This is part of the Emacs manual.
2 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 2001, 2002, 2003,
3 @c 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
4 @c See file emacs.texi for copying conditions.
5 @iftex
6 @chapter Entering and Exiting Emacs
7
8 This chapter explains how to enter Emacs, and how to exit it.
9 @end iftex
10
11 @ifnottex
12 @raisesections
13 @end ifnottex
14
15 @node Entering Emacs, Exiting, Commands, Top
16 @section Entering Emacs
17 @cindex entering Emacs
18 @cindex starting Emacs
19
20 The usual way to invoke Emacs is with the shell command
21 @command{emacs}. From a terminal window running in the X Window
22 System, you can also run Emacs in the background with
23 @command{emacs&}; this way, Emacs won't tie up the terminal window, so
24 you can use it to run other shell commands.
25
26 @cindex startup screen
27 When Emacs starts up, the initial frame displays a special buffer
28 named @samp{*GNU Emacs*}. This buffer contains some information about
29 Emacs, and includes @dfn{links} to common tasks that might be useful
30 to beginning users. For instance, activating the @samp{Emacs
31 Tutorial} link opens the Emacs tutorial; this does the same thing as
32 the command @kbd{C-h t} (@code{help-with-tutorial}). To activate a
33 link, either move point onto it and type @kbd{@key{RET}}, or click on
34 it with @kbd{mouse-1} (the left mouse button).
35
36 Using a command line argument, you can tell Emacs to visit one or
37 more specific files as soon as it starts up. For example,
38 @command{emacs foo.txt} starts Emacs with a buffer displaying the
39 contents of the file @samp{foo.txt}. This feature exists mainly for
40 compatibility with other editors, which are designed to edit one file
41 at a time: once you are done with that file, you exit the editor, and
42 start it again the next time you need it.
43
44 Using Emacs in this way---starting it afresh each time you want to
45 edit a file---is unnecessary and wasteful. Emacs can visit more than
46 one file in a single editing session, and exiting the Emacs session
47 loses valuable accumulated context, such as the kill ring, registers,
48 undo history, and mark ring. These features, described later in the
49 manual, are useful for performing edits across multiple files, or
50 continuing edits to a single file.
51
52 The recommended way to use Emacs is to start it only once, just
53 after you log in, and do all your editing in the same Emacs session.
54 Each time you edit a file, visit it with the existing Emacs, which
55 eventually has many files in it ready for editing. @xref{Files}, for
56 more information on visiting more than one file.
57
58 To edit a file from another program while Emacs is running, you can
59 use the @command{emacsclient} helper program to open a file in the
60 already running Emacs. @xref{Emacs Server}.
61
62 Emacs accepts other command line arguments that tell it to load
63 certain Lisp files, call certain functions, and so forth. These
64 features exist mainly for advanced users. @xref{Emacs Invocation}.
65
66 @vindex inhibit-startup-screen
67 If the value of the variable @code{inhibit-startup-screen} is
68 non-@code{nil}, Emacs does not display the startup screen. In that
69 case, if one or more files were specified on the command line, Emacs
70 simply displays those files; otherwise, it displays a buffer named
71 @samp{*scratch*}, which can be used to evaluate Emacs Lisp expressions
72 interactively (@pxref{Lisp Interaction}). You can set the variable
73 @code{inhibit-startup-screen} by using the Customize facility
74 (@pxref{Easy Customization}), or by editing your initialization file
75 (@pxref{Init File}).@footnote{Note that setting
76 @code{inhibit-startup-screen} in @file{site-start.el} doesn't work,
77 because the startup screen is set up before reading
78 @file{site-start.el}. @xref{Init File}, for information about
79 @file{site-start.el}.}
80
81 @node Exiting, Basic, Entering Emacs, Top
82 @section Exiting Emacs
83 @cindex exiting
84 @cindex killing Emacs
85 @cindex leaving Emacs
86 @cindex quitting Emacs
87
88 @table @kbd
89 @item C-x C-c
90 Kill Emacs (@code{save-buffers-kill-terminal}).
91 @item C-z
92 On a text terminal, suspend Emacs (@code{suspend-emacs}); on a
93 graphical display, iconify (or ``minimize'') the selected frame
94 (@code{iconify-or-deiconify-frame}).
95 @end table
96
97 @kindex C-x C-c
98 @findex save-buffers-kill-terminal
99 @dfn{Killing} Emacs means terminating the Emacs program. To do
100 this, type @kbd{C-x C-c} (@code{save-buffers-kill-terminal}). A
101 two-character key is used to make it harder to type by accident. If
102 there are any modified file-visiting buffers when you type @kbd{C-x
103 C-c}, Emacs first offers to save these buffers. If you do not save
104 them all, it asks for confirmation again, since the unsaved changes
105 will be lost. Emacs also asks for confirmation if any subprocesses
106 are still running, since killing Emacs will also kill the subprocesses
107 (@pxref{Shell}).
108
109 @kbd{C-x C-c} behaves specially if you are using Emacs as a server.
110 If you type it from a ``client frame'', it closes the client
111 connection. @xref{Emacs Server}.
112
113 Emacs can, optionally, record certain session information when you
114 kill it, such as the files you were visiting at the time. This
115 information is then available the next time you start Emacs.
116 @xref{Saving Emacs Sessions}.
117
118 @vindex confirm-kill-emacs
119 If the value of the variable @code{confirm-kill-emacs} is
120 non-@code{nil}, @kbd{C-x C-c} assumes that its value is a predicate
121 function, and calls that function. If the result of the function call
122 is non-@code{nil}, the session is killed, otherwise Emacs continues to
123 run. One convenient function to use as the value of
124 @code{confirm-kill-emacs} is the function @code{yes-or-no-p}. The
125 default value of @code{confirm-kill-emacs} is @code{nil}.
126
127 @findex kill-emacs
128 To kill Emacs without being prompted about saving, type @kbd{M-x
129 kill-emacs}.
130
131 @cindex minimizing a frame
132 @cindex iconifying
133 @cindex suspending
134 You can ``exit'' Emacs in two other ways. On a graphical display,
135 you can @dfn{iconify} (or @dfn{minimize}) an Emacs frame; depending on
136 the window system, this either replaces the Emacs frame with a tiny
137 ``icon'' or conceals the frame entirely (@pxref{Frames}). On a
138 text-only terminal, you can @dfn{suspend} Emacs; this means stopping
139 the Emacs program temporarily, returning control to its parent process
140 (usually a shell).
141
142 @kindex C-z
143 @findex iconify-or-deiconify-frame
144 @findex suspend-emacs
145 On a graphical display, @kbd{C-z} runs the command
146 @code{iconify-or-deiconify-frame}, which iconifies the selected Emacs
147 frame. On a text terminal, @kbd{C-z} runs the command
148 @code{suspend-emacs}, which suspends Emacs.
149
150 After iconifying or suspending Emacs, you can return to it and
151 continue editing wherever you left off. The way to do this depends on
152 the window system or shell. In most common shells, you can resume
153 Emacs after suspending it with the shell command @command{%emacs}.
154
155 @vindex cannot-suspend
156 On very old systems that don't support suspending programs,
157 @kbd{C-z} starts an inferior shell that communicates directly with the
158 terminal, and Emacs waits until you exit the subshell. (The way to
159 exit the subshell is usually @kbd{C-d} or @command{exit}.) On these
160 systems, you can only get back to the shell from which Emacs was run
161 (to log out, for example) when you kill Emacs. Suspending can also
162 fail if you run Emacs under a shell that doesn't support suspending
163 jobs, even if the system itself does support it. In this case, you
164 can set the variable @code{cannot-suspend} to a non-@code{nil} value
165 to force @kbd{C-z} to start an inferior shell.
166
167 Text-only terminals usually listen for certain special characters
168 whose meaning is to kill or suspend the program you are running.
169 @b{This terminal feature is turned off while you are in Emacs.} The
170 meanings of @kbd{C-z} and @kbd{C-x C-c} as keys in Emacs were inspired
171 by the use of @kbd{C-z} and @kbd{C-c} on several operating systems as
172 the characters for stopping or killing a program, but that is their
173 only relationship with the operating system. You can customize these
174 keys to run any commands of your choice (@pxref{Keymaps}).
175
176 @ifnottex
177 @lowersections
178 @end ifnottex
179
180 @ignore
181 arch-tag: df798d8b-f253-4113-b585-f528f078a944
182 @end ignore