GVim的文件备份

感谢幽谷奇峰的博客点拨,转载并备忘如下。

————————
交换文件
如果没有设置
noswapfile,当用GVim打开文件时,就会在同目录下生成一个交换文件(在原文件名后添加一个.swap后缀)。交换文件用于程序崩溃和掉电情况下的文件恢复,如果文件被正常保存并关闭后,该交换文件就被自动删除。但是,很多情况下我们不希望交换文件与原文件在相同目录,这时可以用
'directory' 选项来设定交换文件的目录:

:set
directory=~/vimtemp                                  “这个不对啊!可是我也不想改了,直接不要*.*~了!

 

 

禁用swf交换文件  "  setlocal noswapfile

备份文件

通常
Vim 不会产生备份文件。(我的gvim7.4默认产生备份文件,就是原文件名后面加个波浪线)如果你希望的话,执行如下命令就可以了:


   
     :set backup

 

     :set nobackup


 

备份文件的文件名是在原始文件的后面加上一个~
。如果你的文件名是data.txt,则备份文件的文件名就是data.txt~ 。

如果你不喜欢这个名字,你可以修改扩展名:
  
     :set backupext=.bak
这会使用
data.txt.bak 而非 data.txt~。

还有一个相关选项是
'backupdir'。它指定备份文件的目录,该目录默认情况是与原始文件的路径一致。运行命令:
:set
backupdir=~/vimbackupfiles
 

就把备份文件目录设为~/vimbackupfiles(Windows
XP下为 C:\Documents and Settings\Administrator\vimbackupfiles)



  
     备注:

  
    如果 'backup' 选项没有设置而 'writebackup' 选项设置了,Vim
还是会创建备份文件的。但在文件编辑完后,这个备份文件会被自动删除。这个功能用于避免发生异常情况导致没有存盘。


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

这样,当你第一次编辑
data.txt,作了修改并执行存盘,Vim 会在data.txt所在路径保留一个名为"data.txt.orig" 的原始文件。

    如果你接着修改这个文件,Vim 会发现这个原始文件已经存在,并不再覆盖它。进一步的备份就存在"data.txt~"(或者你设置的
'backupext' 指定的文件)中。
  
  如果你让 'patchmode' 设为空(这是默认的情况),则原始文件不会被保留。
 
实现简单的版本控制
综合使用上述方法最多保存文件的三个版本:原始版本、上一次修改版本和最新版本。如果想要实现多版本控制(比如每修改一次就备份一下修改前的版本),就可以在配置文件vimrc中使用如下命令:


au BufWritePre *
let &bex = '-' . strftime("%Y%m%d-%H%M%S") .
'.
bak'



这样,就可以对文件进行动态备份,生成的备份文件名为:原文件名-YYMMDD-HHMMSS.bak。
posted @ 2014-08-14 20:36  withChengChen  阅读(807)  评论(0编辑  收藏  举报