Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim:停止“;现有交换文件";警告_Vim - Fatal编程技术网

Vim:停止“;现有交换文件";警告

Vim:停止“;现有交换文件";警告,vim,Vim,我不知道为什么,但似乎无论我如何退出Vim,它都会留下交换文件。因此,每当我再次打开该文件时,我都会收到一个关于现有交换文件的恼人错误。每次我都要选择“删除”。我真希望这一切能停止。有什么我可以放在我的.vimrc中告诉它,“只要删除交换文件(如果存在)就行了,别管我了?”参见VIM手册条目。您不应该正常查看这些文件,除非 您的VIM实例正在崩溃 您无意中针对同一文件运行了两个VIM实例 我经常做后者,在两个终端上对同一个文件运行2个vim,但没有意识到这一点。“交换文件”消息是我正在执行此操作

我不知道为什么,但似乎无论我如何退出Vim,它都会留下交换文件。因此,每当我再次打开该文件时,我都会收到一个关于现有交换文件的恼人错误。每次我都要选择“删除”。我真希望这一切能停止。有什么我可以放在我的
.vimrc
中告诉它,“只要删除交换文件(如果存在)就行了,别管我了?”

参见VIM手册条目。您不应该正常查看这些文件,除非

  • 您的VIM实例正在崩溃
  • 您无意中针对同一文件运行了两个VIM实例
  • 我经常做后者,在两个终端上对同一个文件运行2个vim,但没有意识到这一点。“交换文件”消息是我正在执行此操作的指示器


    也许您已经忘记了一个正在运行的VIM会话(后台?),Mac OS上的Command-Q退出终端窗口,并使窗口中运行的每个应用程序崩溃


    要退出VIM,必须使用普通VIM命令,如
    :q

    设置noswapfile

    将其放入vimrc文件中

    if has("win32") || has("win64")
        set directory=$TMP
    else
        set directory=/tmp
    end
    

    .vimrc
    中添加:

    set shortmess+=A
    
    从文档
    :help shortmess

    当现有交换文件被删除时,请勿发出“注意”消息 找到了


    您可能对当前目录路径中的某些目录没有足够的权限。这件事发生在我身上。

    当使用vim编辑器打开一个文件时,相应的交换文件将以.swp扩展名创建。编辑文件时,如果系统崩溃,则不会删除创建的交换文件。因此,当您打开同一文件时,消息显示为“.filename.c.swp”已存在。为了避免这种情况,我们必须在开始工作之前删除所有交换文件

    rm filename.c.swp
    
    文件名。分机。swp有一个插件可以为Vim交换文件自动“做正确的事情”:

    从主页:

    处理交换文件很烦人。大多数情况下,您必须处理交换文件,因为您要么在另一个窗口中打开了同一个文件,要么是先前崩溃时留下的交换文件

    此插件为您提供了在这些情况下所需的功能:

    • 文件是否已在其他窗口的另一个Vim会话中打开
    • 如果是这样,请切换到我们正在编辑该文件的窗口
    • 否则,如果swapfile比文件本身旧,只需将其删除即可
    • 否则,以只读方式打开文件,以便我们可以查看并保存它

    你是怎么离开维姆的?它不应该留下交换文件,因此与其掩盖问题,不如修复它。您是否使用Unix操作系统并点击Ctrl-Z?如果是这样,你就做错了。请具体说明“退出Vim”是什么意思。也许您在作为root用户时意外地在该文件上崩溃了Vim,而现在Vim无法删除它?也许它是只读的?我主要使用MacVim,并使用普通方法(Cmd-Q)退出它。但它从不删除sawp文件。@tdavis:Command-Q不是“通用的”。这对于大多数Mac OS X应用程序来说都很正常。然而,它并不是所有应用都“通用”的。交换文件和备份文件不一样吗?如果vim在正确关闭缓冲区之前崩溃了,您会留下一个交换文件。因此,我刚刚启动了“vi Test.java”,然后对其进行了后台调试。然后我启动另一个“vi Test.java”。我得到“Swap file.Test.java.swp已经存在”,这很有意义,我认为Swap文件是在vim中打开文档时创建的,在文档正确关闭时删除的。@Nik-我最初的答案是指备份文件。这就是你要评论的吗?尽可能简单,但不简单。原始海报提到他正在使用MacVim,这是一个gui应用程序;航站楼不关我的事,正是我想要的。谢谢,你忘了。在文件名前面