通过NETRW在vim编辑远程文件时创建本地备份
题
我具有许多文件远程使用VIM和NETRW插件工作。我还保持时间戳的备份通过改变&backupext
(的文档一个中找到的>)。
虽然在一个远程文件的工作。(SCP://server//folder/file.txt),我注意到,当我保存它,一个备份甚至没有正在取得
有没有方法可以让我有自动在本地做了备份(根据vim的备份设置)每次我保存远程文件?
解决方案
我不认为有一个简单的设置来切换。你可以尝试脚本的东西虽然 - 添加自己的BufWriteCmd
自动命令写一个备份。尝试使用set verbose=9
用于调试(和看NETRW如何它)。
其他提示
我曾经努力解决这个问题的一个变体:保持我到单源树制成的单远程机器上的变化的本地记录。
我维持整个源树的本地副本以及本地svn库到版本的文件。而不是使用NETRW并寻找一种方式保存到本地备份的,我在本地编辑一切,需要一种方式来改变我的自动传播到远程机器。
溶液1:使用BufWritePost里自动命令来调用SCP要复制的文件,它已经写入之后。这可以有效地工作不够的,如果该系统允许进程共享文件描述符,因为它可以运行主SSH会话到远程计算机并分享后续会话的连接。如果你没有那么幸运(我当时的工作在Windows计算机上),所花费的时间进行谈判为每个文件一个新的连接可以是痛苦的。
溶液2:窗,使用的WinSCP ,该具有“保持远程机器更新”模式,其中它监视一个目录及其所有更改子目录,然后自动传播的变化,给定的一组规则(模式忽略,对于不同的文件类型的传输模式,等等)。
那么从你的SCP协议使用来看,它似乎是一个更容易让你使用的保险丝sshfs的,这将使您有正常的文件系统行为支持您而不是只是一个推/拉式CRUD接口。
在NETRW完全插件绕过:write
命令,以获得“备份”功能回到唯一的办法就是使用自动命令自己做。
我意识到这不是一个直接的答案原来的问题 - 但是,你在做什么,似乎很像一个简单VCS功能于变相 - 所以是有一个原因,你不会如使远程文件一个git仓库,然后克隆该存储库本地和编辑之后推变化?