A Plugin to show a diff, whenever recovering a buffer
Pull request Compare This branch is 101 commits behind chrisbra:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


*recover.vim*   Show differences for recovered files

Author:  Christian Brabandt <cb@256bit.org>
Version: 0.14 Sat, 31 Mar 2012 13:29:07 +0200
Copyright: (c) 2009, 2010 by Christian Brabandt         
           The VIM LICENSE applies to recoverPlugin.vim and recoverPlugin.txt
           (see |copyright|) except use recoverPlugin instead of "Vim".

1. Contents                                                     *recoverPlugin*

        1.  Contents.....................................: |recoverPlugin|
        2.  recover Manual...............................: |recover-manual|
        3.  recover Feedback.............................: |recover-feedback|
        4.  recover History..............................: |recover-history|

2. RecoverPlugin Manual                                       *recover-manual*


When using |recovery|, it is hard to tell, what has been changed between the
recovered file and the actual on disk version. The aim of this plugin is, to
have an easy way to see differences, between the recovered files and the files
stored on disk.

Therefore this plugin sets up an auto command, that will create a diff buffer
between the recovered file and the on-disk version of the same file. You can
easily see, what has been changed and save your recovered work back to the
file on disk.

By default this plugin is enabled. To disable it, use >
To enable this plugin again, use >
When you open a file and vim detects, that an |swap-file| already exists for a
buffer, the plugin will ask you, if you'd like to see a diff of both versions
using |vimdiff|. In the dialog answer 'Yes' to open the file and display a
diff version or 'No' to open the file normally.

If you have said 'Yes', the plugin opens a new vertical splitt buffer. On the
left side, you'll find the file as it is stored on disk and the right side
will contain your recovered version of the file (using the found swap file).

You can now use the |merge| commands to copy the contents to the buffer that
holds your recovered version. If you are finished, you can close the diff
version and close the window, by issuing |:diffoff!| and |:close| in the
window, that contains the on-disk version of the file. Be sure to save the
recovered version of you file and afterwards you can safely remove the swap
                                        *RecoverPluginFinish* *FinishRecovery*
In the recovered window, the command >
deletes the swapfile closes the diff window and finishes everything up.

Alternatively you can also use the command >

The command >
show a small message, on what keys can be used to move to the next different
region and how to merge the changes from one windo into the other.


If your Vim was built with |+balloon_eval|, recover.vim will also set up an
balloon expression, that shows you, which buffer contains the recovered
version of your file and which buffer contains the unmodified on-disk version
of your file, if you move the mouse of the buffer. (See |balloon-eval|).

If you have setup your 'statusline', recover.vim will also inject some info
(which buffer contains the on-disk version and which buffer contains the
modified, recovered version). Additionally the buffer that is read-only, will
have a filename (|:f|) of something like 'original file (on disk-version)'. If
you want to save that version, use |:saveas|.

3. Plugin Feedback                                        *recover-feedback*

Feedback is always welcome. If you like the plugin, please rate it at the

You can also follow the development of the plugin at github:

Please don't hesitate to report any bugs to the maintainer, mentioned in the
third line of this document.

4. recover History                                          *recover-history*
        0.14: Mar 31, 2012      : still some problems with issue #4
        0.13: Mar 29, 2012      : fix issue 3 (
                                  reported by lyokha, thanks!)
                                : Ask the user to delete the swapfile
                                  reported by lyokha, thanks!)
        0.12: Mar 25, 2012      : minor documentation update
                                : delete swap files, if no difference found
                                  reported by y, thanks!)
                                : fix some small issues, that prevented the
                                  development versions from working
                                  reported by Rahul Kumar, thanks!)
        0.11: Oct 19, 2010      : use confirm() instead of inputdialog()
                                  (suggested by D.Fishburn, thanks!)
        0.9: Jun 02, 2010       : use feedkeys(...,'t') instead of feedkeys()
                                  (this works more reliable, although it
                                  pollutes the history), so delete those 
                                  spurious history entries
                                : |RecoverPluginHelp| shows a small help
                                  message, about diff commands (suggested by
                                  David Fishburn, thanks!)
                                : |RecoverPluginFinish| is a shortcut for
        0.8: Jun 01, 2010       : make :FinishRecovery more robust
        0.7: Jun 01, 2010       : |FinishRecovery| closes the diff-window and
                                  cleans everything up (suggestion by
                                  David Fishburn)
                                : :DeleteSwapFile is not needed anymore
        0.6: May 31, 2010       : |recover-feedback|
                                : Ask to really open a diff buffer for a 
                                  file (suggestion: David Fishburn, thanks!)
                                : DeleteSwapFile to delete the swap file, that
                                  was used to create the diff buffer
                                : change feedkeys(...,'t') to feedkeys('..')
                                  so that not every command appears in the
        0.5: May 04, 2010       :0r command in recover plugin adds extra \n
                                  Patch by Sergey Khorev (Thanks!)
                                : generate help file with 'et' set, so the 
                                  README at github looks prettier
        0.4: Apr 26, 2010       : handle Windows and Unix path differently
                                : Code cleanup
                                : Enabled |:GLVS|
        0.3: Apr 20, 2010       : first public verion
                                : put plugin on a public repository 
        0.2: Apr 18, 2010       : Internal version, some cleanup,
                                  bugfixes for windows
        0.1: Apr 17, 2010       : Internal version, First working version, 
                                  using simple commands