Thursday, July 31, 2008

crontab: temp file must be edited in place

This is an error message I ran into after upgrading vim from 7.0 to 7.1, after editing a crontab file:

  crontab: temp file must be edited in place

What was weird is this error message went away if I deleted my ~/.vimrc file. If ~/.vimrc was blank, the error message was still there, so it wasn’t caused by any command in particular.

It turned out to have something to do with vim’s backup strategy. I am supposing there is a default vimrc file somewhere that gets loaded if ~/.vimrc doesn’t exist.

After some googling, I fixed it by adding the following to my ~/.vimrc file:

  set backupskip=/tmp/*,/private/tmp/*" 

VIM already defaulted this value to ”/tmp/”. I don’t know why defining my own .vimrc made vim not recognize /private/tmp/ as a temp directory any more, but I don’t care enough to find out right now.

9 comments:

Unknown said...

Thanks

Aimon said...

Awsome. Worked like a charm on my Leopard Server.

Adam Backstrom said...

Works great, thanks. I removed the double quote at the end of the backupskip line.

John Stanish said...

Thanks a lot. Definitely would have wasted a lot of time without your blog.

Alan said...

WFM,thank you

Unknown said...

thanks

Tartley said...

Is that trailing unmatched quote char deliberate? I don't understand the syntax there.

Tim Harper said...

Yes, Tartley, it was deliberate, and it works as is, although it also seems to work without it.

Unknown said...

@Tartley, @Tim: The quote character is a comment in vim syntax, it makes no difference.