我可以从 VIM 交换文件获得版本控制恢复吗?
我有一个文件 x.cpp,不久前包含“AAAAAAA”。
我不小心用另一个包含“BBBBBBB”的文件复制了它。
恐慌!
等一下,让我们看看 .x.cpp.swp —— 有一堆二进制垃圾,然后是“BBBBBBB”,然后是更多垃圾,然后是“AAAAAAA”,所以看起来交换文件包含两个版本。万岁!
那么,如何恢复“AAAAAAAA”版本呢?如果我执行 vim -r
然后我会得到“BBBBBBB”。不幸的是,我无法恢复然后点击撤消。有咒语吗?我可以破解交换文件吗?
如果您知道这里的技巧,我将不胜感激。
I have a file x.cpp which a while ago contained, say, "AAAAAAA".
I accidentally copied over it with another file containing, say, "BBBBBBB".
PANIC!
Hang on, let's look at .x.cpp.swp -- there's a load of binary junk then "BBBBBBB" then more junk then "AAAAAAA", so it looks like the swap file contains both versions. Hooray!
So, how do I recover the "AAAAAAAA" version? If I do vim -r
then I get "BBBBBBB". Unfortunately, I can't recover-then-hit-undo. Is there an incantation? Can I hack the swap file?
Massive gratitude if you know a trick here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,但如果您使用 Vim 7.3+,您可以启用撤消文件
开始:
这样,即使在(非自愿)关闭编辑器后您也可以导航撤消树。
所以,是的,即使在编辑器重新启动后,通常的回到过去、拉动、前进、粘贴的技巧也将起作用。
100g-
(定位文本,拉入寄存器),100g+
(定位目标,放入寄存器)。No, but if you use Vim 7.3+ you can enable undofiles
To get started:
That way you can navigate the undo tree even after a (involuntary) close of your editor.
So yes, the usual trick of going back in time, yanking, going forward in time, pasting will work even after the editor was restarted.
100g-
(locate text, yank into register),100g+
(locate destination, put register).