IT技术博客大学习 共学习 共进步

Vim(gvim)在recover时支持diff

Vimer 2010-11-14 21:06:44 浏览 3,506 次

很久没有写vim相关的文章,愧对vimer.cn这个域名呀~~哈,不过我还是尽量保持经常给大家提供一些Vim相关的知识。
这次介绍的是 recover.vim (http://www.vim.org/scripts/script.php?script_id=3068)
先简单介绍一下背景,vim有自动生成swp文件的功能,能够在异常情况下(简单来说就是你的vim进程被强制终止)将你没有来得及保存的代码存储下来。
但这仍然有个问题,当你再次打开那个文件的时候,vim仅提示你是否要恢复,但是我们并不知道会被恢复成什么样子。。
recover.vim就是为了解决这个问题。
我们直接来做个演示可能会比较明确,以windows下的gvim7.3为例。
新建一个文件 1.cpp,写入如下数据但是不保存

1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
int main(int argc, const char *argv[])
{
 
    return 0;
}

打开任务管理器,kill掉gvim进程,我们会发现多了一个1.cpp.swp文件。
重新打开1.cpp,提示如下:

1

选择是,之后界面如下:

2

鼠标落在右边窗口,执行:diffput 之后界面如下:

3

执行:FinishRecovery,结束恢复过程,1.cpp.swp也会被删除。
------------------------------------------------------------------
另:
博友依云提出本插件缺少一个直接删除的选项,因此修改插件如下,有需要的朋友可以下载:(修改了autoload/recover.vim)

autoload/recover.vim

建议继续学习

  1. vim几个小技巧(批量替换,列编辑) (阅读 37,265)
  2. 简明Vim练级攻略 (阅读 22,103)
  3. Vim下的代码自动补全和代码跳转阅读 (阅读 15,224)
  4. 为什么要用 Emacs/Vim,而不是任何其他编辑器 (阅读 12,923)
  5. vim入门,进阶与折腾 (阅读 10,624)
  6. 在vim(gvim)中运行终端(对,你没有看错,我也没有写反) (阅读 10,605)
  7. 让vim在终端下的配色亮起来! (阅读 9,903)
  8. 最近总结的一些技巧(vim,python,svn,fiddler等) (阅读 8,103)
  9. vim的复制粘贴小结 (阅读 7,863)
  10. Vim(gvim)编程字体推荐 (阅读 7,585)