Add 2012 to FSF copyright years for Emacs files
[bpt/emacs.git] / doc / emacs / entering.texi
CommitLineData
6bf7aab6 1@c This is part of the Emacs manual.
acaf905b 2@c Copyright (C) 1985-1987, 1993-1995, 2001-2012
73b0cd50 3@c Free Software Foundation, Inc.
6bf7aab6 4@c See file emacs.texi for copying conditions.
321ca37f 5@iftex
6bf7aab6 6@chapter Entering and Exiting Emacs
321ca37f
CY
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
6bf7aab6 17@cindex entering Emacs
177c0ea7 18@cindex starting Emacs
6bf7aab6 19
708bf232 20 The usual way to invoke Emacs is with the shell command
321ca37f 21@command{emacs}. From a terminal window running in the X Window
de0bde62
CY
22System, you can run Emacs in the background with @command{emacs &};
23this way, Emacs won't tie up the terminal window, so you can use it to
24run other shell commands.
321ca37f
CY
25
26@cindex startup screen
27 When Emacs starts up, the initial frame displays a special buffer
de0bde62
CY
28named @samp{*GNU Emacs*}. This @dfn{startup screen} contains
29information about Emacs and @dfn{links} to common tasks that are
30useful for beginning users. For instance, activating the @samp{Emacs
6edf847b
CY
31Tutorial} link opens the Emacs tutorial; this does the same thing as
32the command @kbd{C-h t} (@code{help-with-tutorial}). To activate a
33link, either move point onto it and type @kbd{@key{RET}}, or click on
34it with @kbd{mouse-1} (the left mouse button).
321ca37f
CY
35
36 Using a command line argument, you can tell Emacs to visit one or
de0bde62
CY
37more files as soon as it starts up. For example, @command{emacs
38foo.txt} starts Emacs with a buffer displaying the contents of the
39file @samp{foo.txt}. This feature exists mainly for compatibility
40with other editors, which are designed to be launched from the shell
41for short editing sessions. If you call Emacs this way, the initial
42frame is split into two windows---one showing the specified file, and
43the other showing the startup screen. @xref{Windows}.
44
45 Generally, it is unnecessary and wasteful to start Emacs afresh each
46time you want to edit a file. The recommended way to use Emacs is to
47start it just once, just after you log in, and do all your editing in
48the same Emacs session. @xref{Files}, for information on visiting
49more than one file. If you use Emacs this way, the Emacs session
50accumulates valuable context, such as the kill ring, registers, undo
51history, and mark ring data, which together make editing more
52convenient. These features are described later in the manual.
6bf7aab6 53
c9a769c8
RS
54 To edit a file from another program while Emacs is running, you can
55use the @command{emacsclient} helper program to open a file in the
de0bde62 56existing Emacs session. @xref{Emacs Server}.
9f1cc7eb 57
321ca37f 58 Emacs accepts other command line arguments that tell it to load
de0bde62
CY
59certain Lisp files, where to put the initial frame, and so forth.
60@xref{Emacs Invocation}.
6cca5de0 61
6edf847b 62@vindex inhibit-startup-screen
be77bd45
CY
63 If the variable @code{inhibit-startup-screen} is non-@code{nil},
64Emacs does not display the startup screen. In that case, if one or
65more files were specified on the command line, Emacs simply displays
66those files; otherwise, it displays a buffer named @samp{*scratch*},
67which can be used to evaluate Emacs Lisp expressions interactively.
68@xref{Lisp Interaction}. You can set the variable
69@code{inhibit-startup-screen} using the Customize facility
61b9fed1 70(@pxref{Easy Customization}), or by editing your initialization file
de0bde62
CY
71(@pxref{Init File}).@footnote{Setting @code{inhibit-startup-screen} in
72@file{site-start.el} doesn't work, because the startup screen is set
73up before reading @file{site-start.el}. @xref{Init File}, for
74information about @file{site-start.el}.}
6edf847b 75
be77bd45
CY
76 You can also force Emacs to display a file or directory at startup
77by setting the variable @code{initial-buffer-choice} to a
78non-@code{nil} value. (In that case, even if you specify one or more
79files on the command line, Emacs opens but does not display them.)
80The value of @code{initial-buffer-choice} can be either the name of
81the desired file or directory, or @code{t}, which means to display the
82@samp{*scratch*} buffer.
83
6bf7aab6
DL
84@node Exiting, Basic, Entering Emacs, Top
85@section Exiting Emacs
86@cindex exiting
87@cindex killing Emacs
6bf7aab6
DL
88@cindex leaving Emacs
89@cindex quitting Emacs
90
6bf7aab6 91@table @kbd
321ca37f 92@item C-x C-c
a115d013 93Kill Emacs (@code{save-buffers-kill-terminal}).
6bf7aab6 94@item C-z
8ba46c89
CY
95On a text terminal, suspend Emacs; on a graphical display,
96``minimize'' the selected frame (@code{suspend-emacs}).
6bf7aab6
DL
97@end table
98
6bf7aab6 99@kindex C-x C-c
a115d013 100@findex save-buffers-kill-terminal
321ca37f 101 @dfn{Killing} Emacs means terminating the Emacs program. To do
a115d013 102this, type @kbd{C-x C-c} (@code{save-buffers-kill-terminal}). A
de0bde62
CY
103two-character key sequence is used to make it harder to type by
104accident. If there are any modified file-visiting buffers when you
105type @kbd{C-x C-c}, Emacs first offers to save these buffers. If you
106do not save them all, it asks for confirmation again, since the
107unsaved changes will be lost. Emacs also asks for confirmation if any
108subprocesses are still running, since killing Emacs will also kill the
109subprocesses (@pxref{Shell}).
321ca37f 110
a115d013
CY
111 @kbd{C-x C-c} behaves specially if you are using Emacs as a server.
112If you type it from a ``client frame'', it closes the client
113connection. @xref{Emacs Server}.
114
321ca37f
CY
115 Emacs can, optionally, record certain session information when you
116kill it, such as the files you were visiting at the time. This
117information is then available the next time you start Emacs.
118@xref{Saving Emacs Sessions}.
6bf7aab6 119
e020c833
EZ
120@vindex confirm-kill-emacs
121 If the value of the variable @code{confirm-kill-emacs} is
122non-@code{nil}, @kbd{C-x C-c} assumes that its value is a predicate
321ca37f
CY
123function, and calls that function. If the result of the function call
124is non-@code{nil}, the session is killed, otherwise Emacs continues to
125run. One convenient function to use as the value of
126@code{confirm-kill-emacs} is the function @code{yes-or-no-p}. The
127default value of @code{confirm-kill-emacs} is @code{nil}.
128
a115d013
CY
129@findex kill-emacs
130 To kill Emacs without being prompted about saving, type @kbd{M-x
131kill-emacs}.
132
321ca37f 133@kindex C-z
8ba46c89 134@findex suspend-frame
de0bde62
CY
135@cindex minimizing
136@cindex iconifying
137@cindex suspending
8ba46c89 138 @kbd{C-z} runs the command @code{suspend-frame}. On a graphical
de0bde62
CY
139display, this command @dfn{minimizes} (or @dfn{iconifies}) the
140selected Emacs frame, hiding it in a way that lets you bring it back
141later (exactly how this hiding occurs depends on the window system).
142On a text terminal, the @kbd{C-z} command @dfn{suspends} Emacs,
143stopping the program temporarily and returning control to the parent
144process (usually a shell); in most shells, you can resume Emacs after
145suspending it with the shell command @command{%emacs}.
321ca37f
CY
146
147 Text-only terminals usually listen for certain special characters
6bf7aab6 148whose meaning is to kill or suspend the program you are running.
321ca37f
CY
149@b{This terminal feature is turned off while you are in Emacs.} The
150meanings of @kbd{C-z} and @kbd{C-x C-c} as keys in Emacs were inspired
151by the use of @kbd{C-z} and @kbd{C-c} on several operating systems as
152the characters for stopping or killing a program, but that is their
153only relationship with the operating system. You can customize these
154keys to run any commands of your choice (@pxref{Keymaps}).
ab5796a9 155
6cca5de0
LT
156@ifnottex
157@lowersections
158@end ifnottex