所以我在Ubuntu的Vim写作,我做了一个:wq
,然后又回到了Vim。我复制了我需要的部分文本,然后删除了那部分:wq
'd,然后又回到了Vim并意外地复制了另一部分。我需要先复制的部分。我不能只按u
因为我已经离开Vim并重新进入,所以我的回复不会回到上一次会议。
有没有办法恢复第一个复制部分?也许在Vim中有某种恢复或者在Ubuntu中看到以前的副本?
任何帮助都会挽救生命,我会非常感激,谢谢。
答案 0 :(得分:8)
如果抽出的文字不是太大,你应该看一下:reg
的输出。你猛拉的可能是寄存器1或2。
在会话之间保存注册表,但内容大小存在严格限制。您可以使用:set viminfo?
查看系统上的限制:默认值应包括<50
和s10
,这意味着如果寄存器的内容少于50行,则会保存寄存器的内容和/或重量低于10 Kb。
如果你猛拉了几条相当长的线条,你应该没问题。
如果您想更改这些值,请参阅:h 'viminfo'
。
答案 1 :(得分:4)
在这种情况下,我的回答不会对您有所帮助,但对于将来,您可以在会话之间启用持久性无效文件。
要实现这一点,您需要设置undofile
选项。
请参阅:help persistent-undo
即使关闭并重新打开文件,也可以撤消。
该选项仅在Vim 7.3
之后可用