尝试编辑 .vimrc 文件时出现交换文件错误消息?

尝试编辑 .vimrc 文件时出现交换文件错误消息?

每次我尝试打开.vimrc文件时都会收到此消息。我正在vimtutor另一个终端中使用,但我认为我没有打开任何额外的 .vimrc文件。为什么我会看到此错误以及如何修复它?

E325: ATTENTION
Found a swap file by the name ".vimrc.swp"
          owned by: subhrcho   dated: Wed Dec 26 05:54:45 2012
         file name: ~subhrcho/.vimrc
          modified: YES
         user name: subhrcho   host name: slc04lyo
        process ID: 26176
While opening file ".vimrc"
             dated: Mon Jan 28 22:45:16 2013
      NEWER than swap file!

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.
    Quit, or continue with caution.

(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r .vimrc"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".vimrc.swp"
    to avoid this message.

Swap file ".vimrc.swp" already exists!

答案1

交换文件已存在一个月(12 月 26 日),因此删除它可能比较安全。那天,你可能杀死了一个 Vim 实例(或者它崩溃了),留下了交换文件。Vim 永远不会自行清理这些文件,你必须自己删除它(或者选择删除选项(当 Vim 询问你时)。

顺便说一句,recovery.vim——显示恢复文件的差异插件极大地增强了交换文件体验,例如通过显示更改的差异。

答案2

vi使用交换文件保留您编辑的副本直到您保存或放弃它们。

您会看到此错误,因为:

  • 您正在编辑.vimrc两次(不太可能,因为您只使用了vimtutor)。

  • vi.vimrc在被编辑时被杀死。

在后一种情况下,vi无法清理交换文件.vimrc.swp,因此它会很好地询问您是否要恢复更改或放弃它们:

(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r .vimrc"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".vimrc.swp"
    to avoid this message.

如果您没有做任何更改.vimrc(例如,您曾经vi打开过该文件——但在将来会使用less),只需删除该文件:

$ rm .vimrc.swp

如果您对文件进行了更改,请使用 打开它vi并按R。您可能会收到错误E309

E309: Unable to read block 1 from .vimrc.swp

在这种情况下,请按上述说明删除交换文件。如果您可以打开该文件,请输入:

:recover

查看文件并使用以下命令保存:

:x

然后删除交换文件以删除该消息。

答案3

例如,如果您在 vim 仍在运行时关闭计算机,就会发生这种情况。您可以安全地手动删除 .vimrc.swp 文件,或者在 vim 中按“d”键,在粘贴错误后,系统会询问您是否删除。

相关内容