LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2237|回复: 7

vi 如何保存时,自动备份不同版本?

[复制链接]
发表于 2008-2-12 12:48:13 | 显示全部楼层 |阅读模式
记得以前用中型机的时候,编辑器有个功能特别好。就是当保存文件时,它会自动生成比如: abc.001 abc.002 ..... abc.099 的备份文件,这样可以随时找回到以前版本。Vi应该可以实现此功能,但不知道如果做。
另外,如果用Fn设置个开关,在编辑某些文件的时候,把它打开,就非常方便了。
发表于 2008-2-12 13:41:03 | 显示全部楼层
From  http://www.linuxpk.com/doc/vim/usr_07.html   :

备份文件

通常 Vim 不会产生备份文件。如果你希望的话,执行如下命令就可以了:

        :set backup

备份文件的文件名是在原始文件的后面加上一个 ~ 。如果你的文件名是 data.txt,则
备份文件的文件名就是 data.txt~ 。
    如果你不喜欢这个名字,你可以修改扩展名:

        :set backupext=.bak

这会使用 data.txt.bak 而非 data.txt~。
    还有一个相关选项是 'backupdir'。它指定备份文件的目录。默认情况是与原始文
件的路径一致,这在很多情况下都是合适的。

        备注:
        如果 'backup' 选项没有设置而 'writebackup' 选项设置了,Vim 还是会创建
        备份文件的。但在文件编辑完后,这个备份文件会被自动删除。这个功能用于
        避免发生异常情况导致没有存盘(磁盘满是最常见的情况;被雷击也是一种情
        况,不过很少发生)。


保 留 原 始 文 件

如果你在编辑源程序,你可能想在修改之前保留一个备份。但备份文件会在你存盘的时
候被覆盖。这样它只能保留前一个版本,而不是最早的文件。
    要让 Vim 保存一个原始的文件,可以设置 'patchmode' 选项。这个选项定义需要
改动文件的第一个备份文件的扩展名。通常可以这样设:

        :set patchmode=.orig

这样,当你第一次编辑 data.txt,作了修改并执行存盘,Vim 会保留一个名为
"data.txt.orig" 的原始文件。
    如果你接着修改这个文件,Vim 会发现这个原始文件已经存在,并不再覆盖它。进
一步的备份就存在 "data.txt~"(或者你设置的 'backupext' 指定的文件)中。
    如果你让 'patchmode' 设为空(这是默认的情况),则原始文件不会被保留。
回复 支持 反对

使用道具 举报

发表于 2008-2-12 13:42:51 | 显示全部楼层
you can also refer to  http://linux.chinaunix.net/bbs/viewthread.php?tid=909909  for ":set autowrite".
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-12 13:55:40 | 显示全部楼层
谢谢各位的回复,是我没有把问题说清楚。我想要的不仅是文件的备份,是每次的修改后的版本都被保留。 比如 abc.001 abc.002 ....... abc.050。这样我可以随时回到以前的某个版本去。
回复 支持 反对

使用道具 举报

发表于 2008-2-12 21:24:25 | 显示全部楼层
直接用版本控制工具吧
推荐git
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-12 22:14:32 | 显示全部楼层
Post by zhllg;1815686
直接用版本控制工具吧
推荐git


网上看到有人用app-text/rcs, 不知和git相比是否更加小巧一点?
回复 支持 反对

使用道具 举报

发表于 2008-2-12 22:37:46 | 显示全部楼层
rcs应该很老了
还是与时俱进吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-13 17:02:22 | 显示全部楼层
Post by zhllg;1815702
rcs应该很老了
还是与时俱进吧


原来如此。多谢版主!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表