5

所以我在 Ubuntu 中用 Vim 编写,我做了一个:wq,然后又回到 Vim。我复制了我需要的部分文本,然后删除了那部分,:wq'd,然后回到 Vim 并意外复制了另一部分。我需要我最初复制的部分。我不能只按u,因为我已经退出 Vim 并重新进入,所以我的撤消不会回到上一个会话。

有没有办法恢复第一个复制的部分?也许是 Vim 中的某种恢复或在 Ubuntu 中查看以前的副本?

任何帮助都会挽救生命,我将不胜感激,谢谢。

4

2 回答 2

9

如果抽出的文本不是太大,你应该看看:reg. 您抽出的内容可能在寄存器 1 或 2 中。

寄存器在会话之间保存,但对其内容的大小有硬性限制。您可以通过以下方式看到系统上的限制:set viminfo?:默认值应包括<50s10这意味着如果寄存器的内容少于 50 行和/或重量低于 10 Kb,则保存寄存器的内容。

如果你拉了几行相当长的行,你应该没问题。

看看:h 'viminfo'你是否想改变这些值。

于 2013-02-04T06:52:25.973 回答
6

在这种情况下,我的回答对您没有帮助,但是对于将来,您可以在会话之间启用持久撤消文件。

为此,您需要设置该undofile选项。

:help persistent-undo

即使在关闭并重新打开文件后,它也允许您撤消。

该选项仅从 Vim 7.3 开始可用

于 2013-02-04T08:44:39.110 回答