VIM(gvim/macvim)将未保存/未命名缓冲区的交换文件保存在哪里?

VIM(gvim/macvim)将未保存/未命名缓冲区的交换文件保存在哪里?

VIM(gvim/macvim)将未保存/未命名缓冲区的交换文件保存在哪里?(如果它确实这样做的话)。

背景: 在一次半紧张的研讨会上,我正在一个未命名/未保存的 MacVim 缓冲区中做笔记,这时 MacBook 突然没电了,并且突然关机了(它没有像平常一样进入睡眠/休眠状态)。

问题: 是否有人知道未保存的工作是否有可能被保存到交换文件(.swp)或类似文件中,可以恢复?

系统详细信息: 尤其是在使用 Mac OS X 10.5.8 上的 MacVim 时,这种情况发生了(但其他版本的恢复提示也值得关注)。我还没有重新启动 MacVim,以防重新启动会启动清理过程。

答案1

启动 vim 并尝试:

:recover <filename>

如果该文件没有名称,则只需:

:recover

这是最好的选择。有关交换文件和恢复的更多信息,请参阅:

:help usr_11

关于交换文件,通常它们保存在与正在编辑的文件相同的目录中,但在开头添加了 . 以使其隐藏,并在末尾添加了 .swp,但可以通过以下方式将它们移动到其他地方:

:set directory=~/vimswap

或类似的东西。

看:

:help swap

了解所有详细信息。

但是,vim 交换文件与编辑的缓冲区不同,因此请务必阅读有关如何进行恢复的信息。


编辑:回答问题的评论:

[…] 它似乎在您当前的工作目录 ~/tmp、/var/tmp 和 /tmp 中查找交换文件,就我而言,我始终设置了一个当前工作目录,并且它将保存在那里。— dsclementsen 2010 年 10 月 5 日 1:42

另外,一定要检查 vim -r 命令行参数。这将打印出找到的所有交换文件及其所在位置。此外,它还会包含许多额外信息,例如日期/修改时间/用户名/等等...— Neg_EV 2010 年 10 月 5 日 13:49

答案2

我在 Windows 10 上工作,但:recover找不到交换文件。vim -r列出了上次编辑会话(也从未保存)中名为 _.swp 的交换文件。可以使用 进行恢复:recover _

答案3

答案是:到处都是。诀窍是找到正确的那个。有些位于您的 /tmp 目录中,但很多位于您的主目录下的某个地方。

可能有更有效的方法可以做到这一点,但是当我丢失一个未命名的文件(在 MacBook 上)时,以下方法对我有用:

在主目录中,搜索备份文件(需要几秒钟,并且可能可以变得更智能):

find ./ -name ".s*" > findVimBackups.txt

打开文件:

vim findVimBackups.txt

删除不用于未命名文件备份的文件名:

:g!/\/\.s..$/d
:g/svn/d

现在我看到了未命名备份文件位置的列表。在每个目录中,我运行以下命令,直到找到今天的文件:

ls -ltra <directory>

我进入正确的目录并打开 vim 并输入:recover 并选择正确的备份。

答案4

我能够在 Win10 盒子上恢复我的文件,如下所示:

转到您上次打开 vim 的目录。对我来说,那是通过 win 10 任务栏上的 vim 快捷方式。右键单击 vim 图标,再次右键单击 vim 快捷方式并选择“属性”。将弹出一个对话框。该对话框中“开始于:”字段中的值是我上次打开 vim 的实际位置。对我来说,该值为%HOMEDRIVE%%HOMEPATH%。转到 dos 命令控制台并调用命令echo %HOMEDRIVE%echo %HOMEPATH%确定它的位置。

检查该目录中所有 _.s* 文件的最后修改日期。找到最后修改日期与您上次打开文件的时间相匹配的文件。

打开 vim。输入:recover _filename_where文件名是您在前面的说明中找到的文件。

相关内容