自定义Vim写入功能进行备份复制

时间:2018-04-27 21:52:54

标签: vim backup

我想在Vim中创建一个执行以下操作的写入函数:

  • 将文件编辑到目录之前复制(让我们调用back_up_before_last_change)
  • 将新编辑内容写入当前文件
  • 将更新的文件复制到目录(让我们调用此back_up)

通过这种方式,我可以查看较旧的更改,如果文件被意外删除,我将始终拥有最新的备份。有谁知道如何做到这一点或推荐我一些资源,所以我可以自己解决。谢谢

2 个答案:

答案 0 :(得分:2)

高度推荐某种形式的版本控制,例如gitmercurial。这将为您提供所需的文件历史记录(奖励:分支),还将提供在不同存储库之间克隆和共享历史记录的简便方法。

GIT中

您可以使用像vim-futitive这样的插件来处理登台,提交和许多其他git函数。 Vimcasts为逃犯提供了一个不错的screencast tutorial

持久撤消

为了配合版本控制,Vim还提供持久撤消功能,将Vim的撤消历史记录保存到文件中。请参阅:h persistent-undo

只需在'undofile'

中设置vimrc即可
set undofile

可能希望将'undodir'设置为其他位置,例如set undodir=~/.local/vim/undo。注意:'undodir'必须存在。

应该注意持久撤消是版本控制,不应该这样对待。例如,通过在不同的编辑器中编辑文件,可以轻松搞砸撤消历史记录。

Gundoundotree等插件可能有助于深入导航或复杂的撤消历史记录。

答案 1 :(得分:0)

我对完整版本控制系统的建议次之;但对于某些位置,这是不可行的。我已经实现了writebackup plugin以在Vim中具有最小的备份方案。随附的writebackupVersionControl plugin对其进行了扩展以与这些备份一起使用,最后writebackupAutomator plugin允许您自动每天触发备份:

  

如果检测到Vim会不会很好   您过去曾经备份过文件,并自动创建了一个   新的备份-您没有采取任何行动?

     

此插件基于writebackup.vim和   writebackupVersionControl.vim插件,并自动在其上写入备份   一天前第一次写入过去备份但尚未备份的文件   今天。   每天为您提供一个轻松无忧的备份。对于很多   writebackup.vim用例(例如编辑遍布各处的配置文件)   / etc /),最重要的是最初的“过去的良好状态”备份   一。 (当然,您仍然可以手动触发其他检查点   像过去一样通过:WriteBackup进行备份。)