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

dav*_*vur 62 vim gvim swap macvim

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

背景: 在一个半密集的研讨会中,当 MacBook 耗尽果汁并突然断电(它没有像往常那样睡眠/休眠)时,我在一个未命名/未保存的 MacVim 缓冲区中做笔记。

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

系统详细信息: 特别是在 Mac OS X 10.5.8 上使用 MacVim 时发生的这种情况(但其他版本的可能恢复提示也很有趣)。我还没有重新启动 MacVim,以防这样做会启动清理过程。

fra*_*ous 71

启动 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

  • 尝试不带文件名的 `:recover`。我刚刚测试了它以恢复未命名的文件并且它起作用了。无论如何,即使该特定命令没有帮助,阅读这些帮助文件也可能会有所帮助。 (3认同)
  • 另外,请务必查看 vim -r 命令行参数。这将打印出找到的所有交换文件及其位置。此外,它将有很多额外的信息,例如日期/修改/用户名/等... (3认同)

rol*_*her 5

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