vi
keeps its temporary copy of the file you're editing in a
temporary-file directory (
21.2
)
- usually
/tmp
,
/usr/tmp
, or
/var/tmp
. If you're editing a big file or if the temporary filesystem runs out of space,
vi
may not be able to make your temporary file. When that happens, you can use
vi
's
set
directory
command to set the pathname of a different temporary directory. (If this happens a lot though, you should talk to the system administrator and see if the standard area can be cleaned up or made bigger.)
First, you'll need the absolute pathname ( 14.2 ) of a directory on a filesystem with enough room ( 24.9 ) . Use an existing directory or make a new one.
The
vi
command is
set
directory - for example,
set directory=/usr1/jim/vitemp
You have to type that command before giving
vi
a filename to edit - after that,
vi
has made the temporary file and you'll be too late. But if you type that command while using
vi
and then use the
:e
command (
30.4
)
, all files from then on will use the new temporary directory.
To set the directory temporarily, it's probably easiest to add that command to the EXINIT environment variable ( 6.1 ) :
setenv EXINIT 'set directory=/usr1/jim/vitemp'
There are other ways to change EXINIT , too - see article 6.10 .
If you already have a
.exrc
file (
30.6
)
,
setting
EXINIT
will make
vi
ignore your
.exrc
file. To make the temporary
set
directory
work, too, use a command with a vertical bar (
|
) like this:
setenv EXINIT 'source /usr1/jim/.exrc|set directory=/usr1/jim/vitemp'
-