我可以从 VIM 交换文件获得版本控制恢复吗?

发布于 2024-11-16 11:38:25 字数 310 浏览 2 评论 0原文

我有一个文件 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

傲影 2024-11-23 11:38:25

不,但如果您使用 Vim 7.3+,您可以启用撤消文件

开始:

:he undo-persistence

这样,即使在(非自愿)关闭编辑器后您也可以导航撤消树。

所以,是的,即使在编辑器重新启动后,通常的回到过去、拉动、前进、粘贴的技巧也将起作用。

100g-(定位文本,拉入寄存器),100g+(定位目标,放入寄存器)。

No, but if you use Vim 7.3+ you can enable undofiles

To get started:

:he undo-persistence

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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文