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
+ − 52 @var{default-directory}. If you wish to open a file in some other
+ − 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,
444
+ − 204 if you set the variable @var{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