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

时间:2017-05-17 14:22:28

标签: linux vim backup

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

2 个答案:

答案 0 :(得分:2)

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

#!/bin/sh

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

答案 1 :(得分:0)

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

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

所以,一旦我做了备份,我就不需要考虑明确触发一个。我可以查看差异,甚至还原以前的版本。当然,如果你可以使用" full"版本控制系统(如Git或Subversion),使用它。但是对于在整个文件系统中分布的所有小配置来说,这个很好。