恢复Vim中删除的行?

时间:2013-02-04 05:03:50

标签: vim ubuntu copy paste recovery

所以我在Ubuntu的Vim写作,我做了一个:wq,然后又回到了Vim。我复制了我需要的部分文本,然后删除了那部分:wq'd,然后又回到了Vim并意外地复制了另一部分。我需要先复制的部分。我不能只按u因为我已经离开Vim并重新进入,所以我的回复不会回到上一次会议。

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

任何帮助都会挽救生命,我会非常感激,谢谢。

2 个答案:

答案 0 :(得分:8)

如果抽出的文字不是太大,你应该看一下:reg的输出。你猛拉的可能是寄存器1或2。

在会话之间保存注册表,但内容大小存在严格限制。您可以使用:set viminfo?查看系统上的限制:默认值应包括<50s10,这意味着如果寄存器的内容少于50行,则会保存寄存器的内容和/或重量低于10 Kb。

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

如果您想更改这些值,请参阅:h 'viminfo'

答案 1 :(得分:4)

在这种情况下,我的回答不会对您有所帮助,但对于将来,您可以在会话之间启用持久性无效文件。

要实现这一点,您需要设置undofile选项。

请参阅:help persistent-undo

即使关闭并重新打开文件,也可以撤消。

该选项仅在Vim 7.3

之后可用