Commit | Line | Data |
---|---|---|
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 |
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. | |
321ca37f CY |
25 | |
26 | @cindex startup screen | |
27 | When Emacs starts up, the initial frame displays a special buffer | |
de0bde62 CY |
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 | |
6edf847b CY |
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). | |
321ca37f CY |
35 | |
36 | Using a command line argument, you can tell Emacs to visit one or | |
de0bde62 CY |
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. | |
6bf7aab6 | 53 | |
c9a769c8 RS |
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 | |
de0bde62 | 56 | existing Emacs session. @xref{Emacs Server}. |
9f1cc7eb | 57 | |
321ca37f | 58 | Emacs accepts other command line arguments that tell it to load |
de0bde62 CY |
59 | certain 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}, |
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 | |
1c64e6ed | 66 | those files; otherwise, it displays a buffer named @file{*scratch*}, |
be77bd45 CY |
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 | |
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 | |
73 | up before reading @file{site-start.el}. @xref{Init File}, for | |
74 | information about @file{site-start.el}.} | |
6edf847b | 75 | |
be77bd45 CY |
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 | |
78 | non-@code{nil} value. (In that case, even if you specify one or more | |
79 | files on the command line, Emacs opens but does not display them.) | |
20331c1c GM |
80 | The value of @code{initial-buffer-choice} should be the name of |
81 | the desired file or directory. | |
82 | @ignore | |
83 | @c I do not think this should be mentioned. AFAICS it is just a dodge | |
84 | @c around inhibit-startup-screen not being settable on a site-wide basis. | |
1c64e6ed | 85 | or @code{t}, which means to display the @file{*scratch*} buffer. |
20331c1c | 86 | @end ignore |
be77bd45 | 87 | |
6bf7aab6 DL |
88 | @node Exiting, Basic, Entering Emacs, Top |
89 | @section Exiting Emacs | |
90 | @cindex exiting | |
91 | @cindex killing Emacs | |
6bf7aab6 DL |
92 | @cindex leaving Emacs |
93 | @cindex quitting Emacs | |
94 | ||
6bf7aab6 | 95 | @table @kbd |
321ca37f | 96 | @item C-x C-c |
a115d013 | 97 | Kill Emacs (@code{save-buffers-kill-terminal}). |
6bf7aab6 | 98 | @item C-z |
8ba46c89 CY |
99 | On a text terminal, suspend Emacs; on a graphical display, |
100 | ``minimize'' the selected frame (@code{suspend-emacs}). | |
6bf7aab6 DL |
101 | @end table |
102 | ||
6bf7aab6 | 103 | @kindex C-x C-c |
a115d013 | 104 | @findex save-buffers-kill-terminal |
321ca37f | 105 | @dfn{Killing} Emacs means terminating the Emacs program. To do |
a115d013 | 106 | this, type @kbd{C-x C-c} (@code{save-buffers-kill-terminal}). A |
de0bde62 CY |
107 | two-character key sequence is used to make it harder to type by |
108 | accident. If there are any modified file-visiting buffers when you | |
109 | type @kbd{C-x C-c}, Emacs first offers to save these buffers. If you | |
110 | do not save them all, it asks for confirmation again, since the | |
111 | unsaved changes will be lost. Emacs also asks for confirmation if any | |
112 | subprocesses are still running, since killing Emacs will also kill the | |
113 | subprocesses (@pxref{Shell}). | |
321ca37f | 114 | |
a115d013 CY |
115 | @kbd{C-x C-c} behaves specially if you are using Emacs as a server. |
116 | If you type it from a ``client frame'', it closes the client | |
117 | connection. @xref{Emacs Server}. | |
118 | ||
321ca37f CY |
119 | Emacs can, optionally, record certain session information when you |
120 | kill it, such as the files you were visiting at the time. This | |
121 | information is then available the next time you start Emacs. | |
122 | @xref{Saving Emacs Sessions}. | |
6bf7aab6 | 123 | |
e020c833 EZ |
124 | @vindex confirm-kill-emacs |
125 | If the value of the variable @code{confirm-kill-emacs} is | |
126 | non-@code{nil}, @kbd{C-x C-c} assumes that its value is a predicate | |
321ca37f CY |
127 | function, and calls that function. If the result of the function call |
128 | is non-@code{nil}, the session is killed, otherwise Emacs continues to | |
129 | run. One convenient function to use as the value of | |
130 | @code{confirm-kill-emacs} is the function @code{yes-or-no-p}. The | |
131 | default value of @code{confirm-kill-emacs} is @code{nil}. | |
132 | ||
a115d013 CY |
133 | @findex kill-emacs |
134 | To kill Emacs without being prompted about saving, type @kbd{M-x | |
135 | kill-emacs}. | |
136 | ||
321ca37f | 137 | @kindex C-z |
8ba46c89 | 138 | @findex suspend-frame |
de0bde62 CY |
139 | @cindex minimizing |
140 | @cindex iconifying | |
141 | @cindex suspending | |
8ba46c89 | 142 | @kbd{C-z} runs the command @code{suspend-frame}. On a graphical |
de0bde62 CY |
143 | display, this command @dfn{minimizes} (or @dfn{iconifies}) the |
144 | selected Emacs frame, hiding it in a way that lets you bring it back | |
145 | later (exactly how this hiding occurs depends on the window system). | |
146 | On a text terminal, the @kbd{C-z} command @dfn{suspends} Emacs, | |
147 | stopping the program temporarily and returning control to the parent | |
148 | process (usually a shell); in most shells, you can resume Emacs after | |
149 | suspending it with the shell command @command{%emacs}. | |
321ca37f | 150 | |
0be641c0 CY |
151 | Text terminals usually listen for certain special characters whose |
152 | meaning is to kill or suspend the program you are running. @b{This | |
153 | terminal feature is turned off while you are in Emacs.} The meanings | |
154 | of @kbd{C-z} and @kbd{C-x C-c} as keys in Emacs were inspired by the | |
155 | use of @kbd{C-z} and @kbd{C-c} on several operating systems as the | |
156 | characters for stopping or killing a program, but that is their only | |
157 | relationship with the operating system. You can customize these keys | |
158 | to run any commands of your choice (@pxref{Keymaps}). | |
ab5796a9 | 159 | |
6cca5de0 LT |
160 | @ifnottex |
161 | @lowersections | |
162 | @end ifnottex |