我发现自己希望 Vim 创建编号备份文件,这样每次保存时,备份文件名中都会有一些序数。我目前的动力是,我对 C 代码进行了更改,这些更改具有难以想象的灾难性副作用,我想比较我在阅读导致问题的代码时所做的所有“小调整”。它们可能是在几次编辑之前进行的,只是刚刚才被发现。到那时,撤消就太晚了。
例如,假设我退出foo.txt
,Vim 会创建一个foo.txt~
,但那是不够。
当我重新编辑(或重新保存)时foo.txt
,我希望它创建一个名为“...”等foo.txt~001
的foo.txt~002
备份foo.txt~421
。
这已经可能了吗?
(在过去,某些大型机编辑器会自动执行此操作。)
我不在乎它是 1、2、3 还是时间戳,随便什么。只是某种跟踪最近N
更改的方法(我想象将 N 设置为大约 100 )。
答案1
没有 vim 选项可以直接执行此操作,但是在vim 文档对于选项backupext
(指定用于备份文件的扩展名),有一个建议如何执行您要求的操作(尽管使用时间戳而不是数字,但您基本上可以获得相同的效果):
If you like to keep a lot of backups, you could use a BufWritePre
autocommand to change 'backupext' just before writing the file to
include a timestamp.
:au BufWritePre * let &bex = '-' . strftime("%Y%b%d%X") . '~'
Use 'backupdir' to put the backup in a different directory.