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



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

这个脚本可以解决问题。你可以把它命名为 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

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

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

因此,一旦我进行了备份,我就不需要考虑显式触发备份。我可以查看差异,甚至可以恢复以前的版本。当然,如果你可以使用"完整"的版本控制系统(如 Git 或 Subversion),请使用它。但是这对于分布在整个文件系统中的所有小配置更改都很好。

相关内容

最新更新