Where does VIM (gvim/macvim) keep swap files for unsaved/unnamed buffers? (If it does so at all).

Background: Throughout a semi intense seminar I was taking notes in an unnamed/unsaved MacVim buffer when the MacBook ran out of juice and powered down out of nowhere (It did not sleep/hibernate as it usually would).

Question: Would anyone know if there is any chance that the unsaved work may have been saved to a swap (.swp) file or the like, that could be recovered?

System details: In particular this happened using MacVim on a Mac OS X 10.5.8 (But possible recovery hints for other versions are of interest too). I have not restarted MacVim yet in case doing so will initiate a cleanup process.

link|improve this question
Clarification: By unsaved I mean never saved. File was created by pressing Command-T (I think equivalent to :tabe), i.e. a new unnamed buffer is opened in a new tab. (I would usually do ':sav somefilename' at a later stage. – dsclementsen Oct 5 '10 at 1:15
Doesn't matter. See the additions to my answer. – frabjous Oct 5 '10 at 1:28
feedback

1 Answer

up vote 6 down vote accepted

Start up vim and try:

:recover <filename>

If the file never had a name, then simply:

:recover

That's your best bet. For more about swap files and recovery, see:

:help usr_11

About the swap files, typically they're saved in the same directory as the file being edited, but with a . added the beginning to make it hidden and .swp at the end, but it's possible to move them elsewhere by something like:

:set directory=~/vimswap

or similar.

See:

:help swap

For all the details.

A vim swap file is not the same as the edited buffer, however, so be sure to read up there on what can be done for recovery.


EDIT: comments answering the question:

[…] It seems to look in your current working directory, ~/tmp, /var/tmp and /tmp for swap files and in my case I always have a current working directory set and that's where it got saved. – dsclementsen Oct 5 '10 at 1:42

also, be sure to check out the vim -r command line arg. This will print out all the swap files found and where they are. In addtion it will have a lot of extra information such as date/modified/username/etc... *– Neg_EV Oct 5 '10 at 13:49*

link|improve this answer
This is not going to help. By unsaved, I mean never saved. Meaning I opened a new buffer with :tabe or (Command+T). So we're talking about an unsaved/unnamed buffer. Is there a default location where this sort of unsaved work is stored? – dsclementsen Oct 5 '10 at 1:13
Try :recover with no file name. I just tested that for recovering an unnamed file and it worked. Anyway, even if that particular command doesn't help, reading those help files might. – frabjous Oct 5 '10 at 1:24
I am just worried about opening vim at all, in case it somehow knows that it crashed last time and does some cleanup that I don't want it to do. – dsclementsen Oct 5 '10 at 1:30
It doesn't as far as I can tell. I just tested by killing vim externally while editing a new file. But when I ran recover with no argument, it let me choose even from some older sessions. Anyway, the .swp file for an unnmaed buffer is probably in /tmp, but it would be somewhere else depending on whether you had set directory= <something>. – frabjous Oct 5 '10 at 1:35
:recover with no file name worked! I had two empty buffers open and they were saved as .swp and .swo in my current working directory. – dsclementsen Oct 5 '10 at 1:39
show 3 more comments
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.