428
|
1 @comment node-name, next, previous, up
|
|
2 @node Files, Other Customizations, Modes, Top
|
|
3 @chapter Files
|
|
4 @cindex files
|
|
5
|
|
6 The basic unit of stored data in Unix is the @dfn{file}. To edit a file,
|
|
7 you must tell Emacs to read the file into a buffer. This is called
|
|
8 @dfn{visiting} the file. You can now edit the buffer and to save the
|
444
|
9 changes you must write the buffer back to the file.
|
428
|
10
|
|
11 In addition to visiting and saving files, Emacs can delete, copy, rename,
|
|
12 and append to files, and operate on file directories.
|
|
13
|
|
14 @comment node-name, next, previous, up
|
|
15 @menu
|
|
16 * File Names:: How to type and edit file name arguments.
|
|
17 * Visiting:: Visiting a file prepares Emacs to edit the file.
|
|
18 * Saving Files:: How to save Emacs files.
|
|
19 @end menu
|
|
20
|
|
21 @node File Names, Visiting, Files, Files
|
|
22 @section File Names
|
|
23 @cindex file names
|
|
24
|
|
25 Most of the Emacs commands that operate on a file require you to
|
|
26 specify a file name. For example, you might specify the file name
|
|
27 initially when you enter Emacs :
|
|
28
|
|
29 @example
|
|
30 xemacs myfile RET
|
|
31 @end example
|
|
32
|
|
33 @noindent
|
|
34 After you hit @key{RET}, you will enter XEmacs with "myfile" read into
|
|
35 the current buffer. If you do not specify the filename when entering
|
|
36 Emacs, you can use the @b{Open...} option from the @b{File} menu. You
|
|
37 will be prompted for a filename in the echo area:
|
|
38
|
|
39 @example
|
|
40 Find file: /usr/workspace/
|
|
41 @end example
|
|
42
|
|
43 @vindex default-directory
|
|
44 @noindent
|
|
45 Type in a file name which you want to open after the "/" and hit
|
|
46 @key{RET}. The specified file will be read into the current buffer. The
|
|
47 "/usr/workspace" might be the @dfn{default directory}. When Emacs
|
|
48 prompts you for a file, it uses the default-directory unless you specify
|
|
49 a directory. You can see what the default directory of the current
|
|
50 buffer is by using the @b{Describe Variable} option from the @b{Help}
|
|
51 menu. When Emacs prompts you for the variable name to describe, type
|
1738
|
52 @code{default-directory}. If you wish to open a file in some other
|
428
|
53 directory, use @key{DEL} or the @key{BackSpace} key to go back and type
|
444
|
54 the path name of the new directory.
|
428
|
55
|
|
56 You can create a new directory by typing @kbd{M-x
|
|
57 make-directory}. This command will prompt you for a directory name:
|
|
58
|
|
59 @example
|
|
60 Create directory: /usr/workspace/
|
|
61 @end example
|
|
62
|
|
63 @findex make-directory
|
|
64 @findex remove-directory
|
|
65 @cindex creating-directories
|
|
66 @cindex removing-directories
|
|
67 @noindent
|
|
68 After you type a directory name and press @key{RET}, a new directory
|
|
69 with the specified name will be created. If you do not wish to create a
|
|
70 new directory, then simply press @kbd{C-g} to quit the
|
|
71 command. Similarly, you can also remove a directory by using the command
|
|
72 @kbd{remove-directory}. The command @kbd{M-x pwd} will print the current
|
|
73 buffer's default directory. For more information on file names,
|
|
74 @xref{File Names,,,xemacs,XEmacs User's Manual}.
|
444
|
75
|
428
|
76
|
|
77 @node Visiting, Saving Files, File Names, Files
|
|
78 @section Visiting Files
|
|
79 @cindex visiting files
|
|
80
|
|
81 To edit a file in Emacs you need to @dfn{visit} it. @dfn{Visiting} a
|
|
82 file means copying its contents (or reading them) into the current
|
|
83 buffer. Emacs will create a new buffer for each file that you visit. The
|
|
84 buffer will be named after the file that you open. If you open a file
|
|
85 @file{/usr/workspace/myfile.texinfo}, the buffer will be called
|
|
86 "myfile.texinfo". If a buffer with this name already exists, a unique
|
|
87 name will be constructed by appending @samp{<2>}, @samp{<3>}, etc. If
|
|
88 this is the second buffer with the same name, a "<2>" will be appended,
|
|
89 "<3>" for a third buffer and so on. The name of the buffer which is
|
|
90 being displayed in the window will be shown both at the top and bottom
|
|
91 of the frame. Once you are in XEmacs, you can use the following
|
|
92 commands:
|
|
93
|
|
94 @table @kbd
|
|
95 @item C-x C-f
|
|
96 @findex find-file
|
|
97 @kindex C-x C-f
|
|
98 This command will visit a file (@code{find-file}). It will prompt you
|
|
99 for a file name to visit. The @b{Open...} option from the @b{File} menu
|
|
100 does the same thing:
|
|
101
|
|
102 @example
|
|
103 Find file: /usr/workspace/
|
|
104 @end example
|
|
105
|
|
106 @noindent
|
|
107 Type in a filename and press @key{RET}. You will see a new buffer on the
|
|
108 screen with its name in the mode-line. If the filename you specify
|
|
109 already exists in Emacs, the buffer containing that file will be
|
|
110 selected. You will get an error message if the filename does not
|
|
111 exist. If you still press @key{RET}, a new buffer with the given
|
444
|
112 filename will be displayed on the screen.
|
428
|
113
|
|
114 @item C-x C-v
|
|
115 @kindex C-x C-v
|
|
116 @findex find-alternate-file
|
|
117 This command (@code{find-alternate-file}), will visit a different file
|
|
118 instead of the one visited last. It is similar to @kbd{C-c C-f} except
|
444
|
119 that it kills the current buffer (after offering to save it).
|
428
|
120
|
|
121 @item C-x 5 C-f
|
|
122 @kindex C-x 5 C-f
|
|
123 @findex find-file-other-frame
|
|
124 This command will visit a file in another frame
|
|
125 (@code{find-file-other-frame}) without changing the current window or
|
|
126 frame. The @b{Open in New Frame...} from the @b{File} menu will do the
|
|
127 same thing. It will prompt you for a file name in the echo area. After
|
|
128 you type the file name and press @key{RET}, the specified file will be
|
444
|
129 read into a new buffer and displayed on a new frame.
|
428
|
130 @end table
|
|
131
|
|
132 @node Saving Files, , Visiting, Files
|
|
133 @section Saving Files
|
|
134 @cindex saving files
|
|
135
|
|
136 The changes that you make after visiting a file will not be saved
|
|
137 unless you save the buffer. When you save the buffer, Emacs writes the
|
|
138 current contents of the buffer into the visited file. Some commands to
|
|
139 save buffers are:
|
|
140
|
|
141 @table @kbd
|
|
142 @item C-x C-s
|
|
143 @findex save-buffer
|
|
144 @kindex C-x C-s
|
|
145 This command will permanently save the current buffer in its visited
|
|
146 file (@code{save-buffer}). You will see the following message in the
|
|
147 echo area if you save a file called "myfile.texinfo" :
|
|
148
|
|
149 @example
|
|
150 Wrote /usr/workspace/myfile.texinfo
|
|
151 @end example
|
|
152
|
|
153 @noindent
|
|
154 Try using this command twice. You will get the above message the first
|
|
155 time you use this command, the second time you will get the following
|
444
|
156 message:
|
428
|
157
|
|
158 @example
|
|
159 (No changes need to be saved)
|
|
160 @end example
|
|
161
|
|
162 @noindent
|
|
163 This message indicates that you haven't made any changes since the last
|
444
|
164 time you saved the file.
|
428
|
165
|
|
166 @item C-x s
|
|
167 @kindex C-x s
|
|
168 @findex save-some-buffers
|
|
169 This command will save all the buffers in their visited files
|
|
170 (@code{save-some-buffers}). It will prompt you for typing yes or no:
|
|
171
|
|
172 @example
|
|
173 Save file /usr/workspace/myfile.texinfo? (y or n)
|
|
174 @end example
|
|
175
|
|
176 @noindent
|
|
177 You will get the above message for all the buffers. Type "y" if you want
|
444
|
178 to save the buffer.
|
428
|
179
|
|
180 @item C-x C-w
|
|
181 @findex write file
|
|
182 @kindex C-x C-w
|
|
183 This command will prompt you for a file name and save the current buffer
|
|
184 in that file. (@code{write-file}). You will see the following message in
|
|
185 the echo area:
|
|
186
|
|
187 @example
|
|
188 Write file: /usr/workspace/
|
|
189 @end example
|
|
190
|
|
191 @noindent
|
|
192 After you type in a file name, press @key{RET}. The buffer will be saved
|
|
193 in a new file. You can make copies of a particular file using this
|
444
|
194 command.
|
428
|
195 @end table
|
|
196
|
|
197 You can also undo all the changes made since the file was visited or
|
|
198 saved by reading the text from the file again (called
|
|
199 @dfn{reverting}). For more information on this option,
|
444
|
200 @xref{Reverting,,,xemacs,XEmacs User's Manual}.
|
428
|
201
|
|
202 @vindex make-backup-files
|
|
203 When you save a file in Emacs, it destroys its old contents. However,
|
1738
|
204 if you set the variable @code{make-backup-files} to non-@code{nil}
|
428
|
205 i.e. @samp{t}, Emacs will create a @dfn{backup} file. Select the
|
|
206 @b{Describe variable} option from the @b{Help} menu and look at the
|
|
207 documentation for this variable. Its default value should be
|
|
208 @samp{t}. However, if its not then use @kbd{M-x set-variable} to set it
|
|
209 to @samp{t} (@pxref{Setting Variables}). The backup file will contain
|
|
210 the contents from the last time you visited the file. Emacs also
|
|
211 provides options for creating numbered backups. For more information on
|
444
|
212 backups, @xref{Backup,,,xemacs,XEmacs User's Manual}.
|
428
|
213
|
|
214 @cindex auto saving
|
|
215 Emacs also saves all the files from time to time so that in case of a
|
|
216 system crash you don't lose lot of your work. You will see the message
|
|
217 @samp{Auto-saving...} displayed in the echo area when the buffer is
|
|
218 being saved automatically. The auto saved files are named by putting the
|
|
219 character @samp{#} in front and back. For example a file called
|
|
220 "myfile.texinfo" would be named as @file{#myfile.texinfo#}. For
|
|
221 information on controlling auto-saving and recovering data from
|
444
|
222 auto-saving, @xref{Auto Save Files,,,xemacs,XEmacs User's Manual}.
|
428
|
223
|
|
224 @cindex simultaneous editing
|
|
225 Emacs provides protection from simultaneous editing which occurs if
|
|
226 two users are visiting the same file and trying to save their
|
|
227 changes. It will put a lock on a file which is being visited and
|
|
228 modified. If any other user tries to modify that file, it will inform
|
|
229 the user about the lock and provide some
|
|
230 options. For more information on protection against simultaneous
|
|
231 editing, @xref{Interlocking,,,xemacs,XEmacs User's Manual}.
|
|
232
|
|
233
|
|
234
|
|
235
|
|
236
|
|
237
|
|
238
|
|
239
|
|
240
|
|
241
|
|
242
|
|
243
|
|
244
|
|
245
|
|
246
|
|
247
|
|
248
|
|
249
|
|
250
|
444
|
251
|
|
252
|
|
253
|
|
254
|