如何配置 vim 以保存额外副本

How to configure vim to save extra copies

有没有一种方法可以配置 vim,而不是创建一个临时 .swp,每次保存时,假设我正在编辑文件 name_of_the_file.txt ,程序会自动创建一个包含先前保存的文件,以保存的数据和时间命名,例如name_of_the_file-05-17-2017-11:20.txt 在文件夹中,比方说 ~/.vim-bckp/name_of_the_file/?或者,更好的是,有一个自定义的保存命令来执行上述请求,并避免用微小的更改淹没 HDD。

这个脚本可以解决问题。你可以将它命名为 vimBackup 或任何东西,不要使用现有的命令名称。然后,您可以将命令复制到 $PATH 变量的路径中的某处,或者将 $PATH 变量附加到包含此脚本的自定义脚本文件夹中。然后您就可以使用它而无需使用完整路径来执行它。

#!/bin/sh

[[  == "" ]] && echo "Command expect a file path" && exit 1
[[ ! $# == 1 ]] && echo "Command expect only one parameter" && exit 1
[[ -w  ]] && cp  _$(date +%Y-%m-%d_%H:%M) # if exist and writable make a copy
vim 

我为此写了writebackup plugin。这变成了一个完整的插件套件:

  • writebackupVersionControl plugin 插件通过附加命令补充此脚本,并通过更多检查增强 :WriteBackup 命令,但这不是必需的。
  • writebackupToAdjacentDir plugin 实施 WriteBackup-dynamic-backupdir 配置,将备份文件放在相邻的备份目录中(如果存在)。这有助于备份不能放在同一目录中。
  • writebackupAutomator plugin 会在一天第一次写入过去备份但今天尚未备份的文件时自动写入备份。当您忘记备份时,它可以成为您的安全网。

所以,一旦我做了备份,我就不需要考虑明确触发一个。我可以查看差异,甚至可以恢复以前的版本。当然,如果您可以使用 "full" 版本控制系统(如 Git 或 Subversion),请使用它。但是这个非常适合分布在整个文件系统中的所有小配置更改。