On 5/16/2013 8:48 PM, Gary Johnson wrote:
On 2013-05-16, ping wrote:
guys:
My PC (ubuntu) just restarted by itself due to the (stupid) overheat
issue, again (I couldn't find a solution on that in a year..)

but regardless, I had a file that I had been editing for quite a while.
all of a sudden the PC reloaded, now I'm wondering how can I recover
that file.

I tried both of the following method , but none of them give me the
right file.

one thing I've notice that if I'm in different folder, vim -r give me
different files. I tried to change to different folder and invoke vim
-r, but still failed to find the right one (per the timestamp) for
me...

any other good ideals?

maybe the last resort, do I have to grep from the whole harddisk for this?

and, what's the best practice to solve this issue in the future
(lesson learned for me: always use a named buffer ) ?


1) :recover

Swap files found:
    Using specified name:
1.    .swa
           owned by: ping   dated: Fri Jan 21 17:26:35 2011
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 14418
2.    .swb
           owned by: ping   dated: Wed Dec 29 14:32:22 2010
          file name: [No Name]
           modified: no
          user name: ping   host name: 640g-laptop
         process ID: 7874
3.    .swc
           owned by: ping   dated: Fri Dec 17 17:05:02 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 2735
4.    .swd
           owned by: ping   dated: Mon Dec  6 17:57:06 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 22947
5.    .swe
           owned by: ping   dated: Fri Oct 29 08:15:23 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 20799
6.    .swf
           owned by: ping   dated: Thu Dec  2 13:05:32 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 5370
7.    .swg
           owned by: ping   dated: Sat Oct 23 11:38:18 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 4930
8.    .swh
           owned by: ping   dated: Sat Oct 23 06:40:55 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 3119
9.    .swi
           owned by: ping   dated: Sat Oct 16 23:28:22 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 13572
10.    .swj
           owned by: ping   dated: Sat Oct 23 06:35:33 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 4930
11.    .swk
           owned by: ping   dated: Tue Oct 12 10:15:05 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 13672
12.    .swl
           owned by: ping   dated: Sun Oct 10 06:44:29 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 26777
13.    .swm
           owned by: ping   dated: Wed Oct  6 00:44:37 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 29373
14.    .swn
           owned by: ping   dated: Tue Oct  5 03:59:02 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 29373
15.    .swo
           owned by: ping   dated: Sun Sep 26 09:34:44 2010
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 3824
16.    .swp
           owned by: ping   dated: Fri Apr 20 15:59:12 2012
          file name: [No Name]
           modified: YES
          user name: ping   host name: 640g-laptop
         process ID: 17594
    In directory ~/tmp:
       -- none --
    In directory /var/tmp:
       -- none --
    In directory /tmp:
       -- none --

Enter number of swap file to use (0 to quit): 0
After a quick look at Vim's memline.c, I think you are the victim of
poor housekeeping and a bug in Vim.  You may still be able to
recover your files though.

Note that your oldest swap file is named ".swp", the next oldest is
named ".swo", and that pattern of decreasing last letters continues
through your newest swap file which is named ".swa".  Note, too,
that your newest swap file is pretty old, from January 2011.  I
doubt that that is the last time you used an unnamed buffer.

When Vim creates a swap file, it first tries the suffix ".swp".  If
that file exists, Vim decrements the last letter and tries again.
When the suffix becomes ".swa" and that file exists, Vim then
decrements the second-to-last letter, sets the last letter to "z",
and tries again.  It continues to look for swap file names that
don't exists until it reaches the suffix ".saa", then gives up.

Now, when Vim looks for swap files, it looks for files with suffixes
matching the pattern ".sw?".  This will find only the first 16 swap
files.  It ignores any swap files created with a second letter other
than "w".

That is a bug and needs to be fixed.  Vim should either look for
swap files whose suffixes match the pattern ".s??" or stop creating
swap files with suffixes whose second letter is other than "w".

To your problem:  It is quite likely that the same directories that
contain files named ".swa" also contain files named ".svz", ".svy",
and so on.  Those are valid Vim swap files, but Vim doesn't
recognize them as such by those names.

I would suggest first verifying that you do not care about the files
matching the pattern ".sw?", then delete them.  Then find the newest
file with a name matching the pattern ".s??", rename it to ".swp",
and try recovering it.

Once you've recovered all your files, I would suggest that you close
all instances of Vim and do a sweep of your file system using find
(not grep) to find all your swap files.  Again be sure that you do
not need them, then delete them all.  In the future, pay attention
to swap files left over after crashes and keep them cleaned up.

Regards,
Gary

thanks Gary,  I think I only undertsand some part of your explanations.
can you detail the steps for me to recover my file?


--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to