删除文件仍然在vim中打开(取消删除?)

时间:2013-12-02 23:34:23

标签: vim vi ext3 undelete

帮助!我没有cp -Rf dir dir.bak备份我的活动项目,而是rm -Rf dir dir.bak。它并没有比这更糟糕:(

我在我的ext3分区上运行extundelete --restore-directory并恢复了我的一些目录。

我的希望是我还有vim打开。 vim是否将每个文件的内容保存在内存缓冲区中,即使不在该vim选项卡中也是如此?我打开了两个vim标签,每个标签大约有6个窗口。完全,我将丢失30个源文件:(

当基础目录被删除后,有没有办法在vim中执行:wa!?如果我重新创建基础目录,vim仍然无法保存文件我猜是因为打开文件的inode无效。

有没有办法可以将我在vim中打开的所有缓冲区保存到新目录中?我不知道缓冲区包含的文件的表示形式。如果我切换vim标签(我还没有),它会尝试从磁盘重新读取这些文件吗?

vim内外的任何创意解决方案都非常感谢!!

2 个答案:

答案 0 :(得分:1)

如果重新创建文件夹,它应该有效。如果文件在缓冲区中打开,则它们在内存中。缓冲区只存储保存文件名的路径。 Inode是文件系统特定的实现细节,vim对此一无所知。

如果目录树不是很难重新创建,您可以尝试:wa,直到重新创建所有丢失的文件夹。

答案 1 :(得分:0)

对于意外删除内容的问题,我已经完成了alias rm=trash-put,这会将已删除的文件放入垃圾箱,以便日后检索。我从这里得到了这些信息:http://www.webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html