]> code.delx.au - gnu-emacs/blob - doc/emacs/entering.texi
; Merge from origin/emacs-25
[gnu-emacs] / doc / emacs / entering.texi
1 @c This is part of the Emacs manual.
2 @c Copyright (C) 1985-1987, 1993-1995, 2001-2016 Free Software
3 @c 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
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 run Emacs in the background with @command{emacs &};
23 this way, Emacs won't tie up the terminal window, so you can use it to
24 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 @dfn{startup screen} contains
29 information about Emacs and @dfn{links} to common tasks that are
30 useful for 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 files as soon as it starts up. For example, @command{emacs
38 foo.txt} starts Emacs with a buffer displaying the contents of the
39 file @samp{foo.txt}. This feature exists mainly for compatibility
40 with other editors, which are designed to be launched from the shell
41 for short editing sessions. If you call Emacs this way, the initial
42 frame is split into two windows---one showing the specified file, and
43 the other showing the startup screen. @xref{Windows}.
44
45 Generally, it is unnecessary and wasteful to start Emacs afresh each
46 time you want to edit a file. The recommended way to use Emacs is to
47 start it just once, just after you log in, and do all your editing in
48 the same Emacs session. @xref{Files}, for information on visiting
49 more than one file. If you use Emacs this way, the Emacs session
50 accumulates valuable context, such as the kill ring, registers, undo
51 history, and mark ring data, which together make editing more
52 convenient. These features are described later in the manual.
53
54 To edit a file from another program while Emacs is running, you can
55 use the @command{emacsclient} helper program to open a file in the
56 existing Emacs session. @xref{Emacs Server}.
57
58 Emacs accepts other command line arguments that tell it to load
59 certain Lisp files, where to put the initial frame, and so forth.
60 @xref{Emacs Invocation}.
61
62 @vindex inhibit-startup-screen
63 If the variable @code{inhibit-startup-screen} is non-@code{nil},
64 Emacs does not display the startup screen. In that case, if one or
65 more files were specified on the command line, Emacs simply displays
66 those files; otherwise, it displays a buffer named @file{*scratch*},
67 which 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
70 (@pxref{Easy Customization}), or by editing your initialization file
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
73 up before reading @file{site-start.el}. @xref{Init File}, for
74 information about @file{site-start.el}.}
75
76 You can also force Emacs to display a file or directory at startup
77 by setting the variable @code{initial-buffer-choice} to a string
78 naming that file or directory. The value of
79 @code{initial-buffer-choice} may also be a function (of no arguments)
80 that should return a buffer which is then displayed.
81 @ignore
82 @c I do not think this should be mentioned. AFAICS it is just a dodge
83 @c around inhibit-startup-screen not being settable on a site-wide basis.
84 @code{initial-buffer-choice} may also be @code{t} in which case the
85 @file{*scratch*} buffer will be shown.
86 @end ignore
87 If @code{initial-buffer-choice} is non-@code{nil}, then if you specify
88 any files on the command line, Emacs still visits them, but does not
89 display them initially.
90
91 @node Exiting
92 @section Exiting Emacs
93 @cindex exiting
94 @cindex killing Emacs
95 @cindex leaving Emacs
96 @cindex quitting Emacs
97
98 @table @kbd
99 @item C-x C-c
100 Kill Emacs (@code{save-buffers-kill-terminal}).
101 @item C-z
102 On a text terminal, suspend Emacs; on a graphical display,
103 iconify (or ``minimize'') the selected frame (@code{suspend-emacs}).
104 @end table
105
106 @kindex C-x C-c
107 @findex save-buffers-kill-terminal
108 @dfn{Killing} Emacs means terminating the Emacs program. To do
109 this, type @kbd{C-x C-c} (@code{save-buffers-kill-terminal}). A
110 two-character key sequence is used to make it harder to type by
111 accident. If there are any modified file-visiting buffers when you
112 type @kbd{C-x C-c}, Emacs first offers to save these buffers. If you
113 do not save them all, it asks for confirmation again, since the
114 unsaved changes will be lost. Emacs also asks for confirmation if any
115 subprocesses are still running, since killing Emacs will also kill the
116 subprocesses (@pxref{Shell}).
117
118 @kbd{C-x C-c} behaves specially if you are using Emacs as a server.
119 If you type it from a client frame, it closes the client
120 connection. @xref{Emacs Server}.
121
122 Emacs can, optionally, record certain session information when you
123 kill it, such as the files you were visiting at the time. This
124 information is then available the next time you start Emacs.
125 @xref{Saving Emacs Sessions}.
126
127 @vindex confirm-kill-emacs
128 If the value of the variable @code{confirm-kill-emacs} is
129 non-@code{nil}, @kbd{C-x C-c} assumes that its value is a predicate
130 function, and calls that function. If the result of the function call
131 is non-@code{nil}, the session is killed, otherwise Emacs continues to
132 run. One convenient function to use as the value of
133 @code{confirm-kill-emacs} is the function @code{yes-or-no-p}. The
134 default value of @code{confirm-kill-emacs} is @code{nil}.
135
136 To further customize what happens when Emacs is exiting, see
137 @ref{Killing Emacs,,, elisp, The GNU Emacs Lisp Reference Manual}.
138
139 @findex kill-emacs
140 To kill Emacs without being prompted about saving, type @kbd{M-x
141 kill-emacs}.
142
143 @kindex C-z
144 @findex suspend-frame
145 @cindex minimizing
146 @cindex iconifying
147 @cindex suspending
148 @kbd{C-z} runs the command @code{suspend-frame}. On a graphical
149 display, this command @dfn{minimizes} (or @dfn{iconifies}) the
150 selected Emacs frame, hiding it in a way that lets you bring it back
151 later (exactly how this hiding occurs depends on the window system).
152 On a text terminal, the @kbd{C-z} command @dfn{suspends} Emacs,
153 stopping the program temporarily and returning control to the parent
154 process (usually a shell); in most shells, you can resume Emacs after
155 suspending it with the shell command @command{%emacs}.
156
157 Text terminals usually listen for certain special characters whose
158 meaning is to kill or suspend the program you are running. @b{This
159 terminal feature is turned off while you are in Emacs.} The meanings
160 of @kbd{C-z} and @kbd{C-x C-c} as keys in Emacs were inspired by the
161 use of @kbd{C-z} and @kbd{C-c} on several operating systems as the
162 characters for stopping or killing a program, but that is their only
163 relationship with the operating system. You can customize these keys
164 to run any commands of your choice (@pxref{Keymaps}).
165
166 @ifnottex
167 @lowersections
168 @end ifnottex