cas*_*cas 12
如果您正在使用vim,您可能能够恢复部分或全部已删除的文本,因为 vim 将 9 个最近删除的内容存储在寄存器 1 到 9 中,.viminfo当您退出时,这些文件会保存到您的主目录中调用的文件中vim。
这个寄存器保存~/.viminfo是全局的,对于所有已编辑的文件,不是每个编辑的文件一组。因此,如果您编辑了其他文件并删除了任何行,则部分或全部删除的文本将消失。
如果您还没有从其他文件中编辑和删除(许多)行,那么您删除的行(部分)很有可能仍然存在。
您可以使用 中的:registers命令检查您的文本是否仍在这些寄存器中vim。
运行vim filename (其中文件名是您不小心清除的文件的名称)
输入:registers(或缩写形式,只是:reg)并点击enter。
检查输出以查看是否存在与您的文本相似的内容。
例如,在我的系统上,我看到如下内容vim:
:reg
--- Registers ---
"" ^J
"0 ^J
"1 You can check to see if your text is still in those registers with the :registers command in vim.^J
"2 If you haven't edited and deleted lines from other files yet, there's a good chance your deleted lines will still be there.^J^J
"3 If you are using vim, you may be able to recover some or all of your deleted text because vim stores the most recent 9 deletion in registers 1 to 9, which are saved to a file called .viminf
"4 ^J
...
...
...
Run Code Online (Sandbox Code Playgroud)
注意:""是“未命名”寄存器并且总是包含最近的 yank 或 delete 的值,并且"0是当前的 yank 寄存器。有关更多信息,请参阅如何使用 vim 寄存器。谷歌还给我找到了这篇博文,它很好地描述了它。
还有内置帮助:help registers,当然还有http://www.vim.org/、 http://vim.wikia.com/wiki/Vim_Tips_Wiki和https://vi.stackexchange.com/了解更多一般vim信息。
如果您在寄存器中看到一些已删除的文本,则键入",后跟寄存器的编号,然后p将其粘贴到当前缓冲区的当前位置。
例如,如果我想恢复上面的寄存器 1 和 2,我会输入:
"1p"2p
这些寄存器将粘贴到我当前的编辑缓冲区中。
注意:只要您输入任何内容,例如"开始粘贴寄存器,:registers显示就会消失。因此,要么记下您要恢复的寄存器,要么只输入:registers需要提醒自己的频率。