## D.2. Problems Saving Files

You try to write your file, but you get one of the following messages:

>     File exists
>     File file exists - use w!
>     [Existing file]
>     File is read only

  Type `:w!` `file` to overwrite the existing file, or type `:w` `newfile` to save the edited version in a new file.

You want to write a file, but you don't have write permission for it. You get the message "Permission denied."
  Use `:w` `newfile` to write out the buffer into a new file. If you have write permission for the directory, you can use `mv` to replace the original version with your copy of it. If you don't have write permission for the directory, type `:w` `pathname/file` to write out the buffer to a directory in which you do have write permission (such as your home directory, or /tmp).

You try to write your file, but you get a message telling you that the file system is full.
  Type `:!rm` `junkfile` to delete a (large) unneeded file and free some space. (Starting an ex command with an exclamation point gives you access to UNIX.)

  Or type `:!df` to see whether there's any space on another file system. If there is, choose a directory on that file system and write your file to it with `:w` `pathname`. (`df` is the UNIX command to check a disk's free space.)

The system puts you into open mode and tells you that the file system is full.
  The disk with vi's temporary files is filled up. Type `:!ls /tmp` to see whether there are any files you can remove to gain some disk space.[65] If there are, create a temporary UNIX shell from which you can remove files or issue other UNIX commands. You can create a shell by typing `:sh`; type CTRL-D or `exit` to terminate the shell and return to vi. (On most UNIX systems, when using a job-control shell, you can simply type CTRL-Z to suspend vi and return to the UNIX prompt; type `fg` to return to vi.) Once you've freed up some space, write your file with `:w!`.

  > [65] Your vi may keep its temporary files in /usr/tmp, /var/tmp, or your current directory; you may need to poke around a bit to figure out where exactly you've run out of room.

You try to write your file, but you get a message telling you that your disk quota has been reached.
  Try to force the system to save your buffer with the ex command `:pre` (short for `:preserve`). If that doesn't work, look for some files to remove. Use `:sh` (or CTRL-Z if you are using a job-control system) to move out of vi and remove files. Use CTRL-D (or `fg`) to return to vi when you're done. Then write your file with `:w!`.

Copyright © 2003 O'Reilly & Associates. All rights reserved.