vim编辑时遇到E325: ATTENTION Found a swap file by the name “./.backu.sh.swp”错误代码的解决办法「建议收藏」

vim编辑时遇到E325: ATTENTION Found a swap file by the name “./.backu.sh.swp”错误代码的解决办法「建议收藏」遇到这种错误代码的时候你肯定会看到下面这张图。这种情况多半发生在你上次编辑脚本或者其他文件,中途因为某些原因,强制杀死进程,或者强制退出导致的。对比windows系统下,我们编辑文件强制退出,我们也会遇到这样的提示,正常打开word时,如左图所示,当我们没有保存文档时,强制结束进程时,下次打开这个文档会出现右图所示的情景。也就是说,非正常打开会多出一个提示,告诉你是否要恢复你上次未保存的文件。

大家好,又见面了,我是你们的朋友全栈君。

  遇到这种错误代码的时候你肯定会看到下面这张图。这种情况多半发生在你上次编辑脚本或者其他文件,中途因为某些原因,强制杀死进程,或者强制退出导致的。vim编辑时遇到E325: ATTENTION Found a swap file by the name "./.backu.sh.swp"错误代码的解决办法「建议收藏」

对比windows系统下,我们编辑文件强制退出,我们也会遇到这样的提示,正常打开word时,如左图所示,当我们没有保存文档时,强制结束进程时,下次打开这个文档会出现右图所示的情景。也就是说,非正常打开会多出一个提示,告诉你是否要恢复你上次未保存的文件。

vim编辑时遇到E325: ATTENTION Found a swap file by the name "./.backu.sh.swp"错误代码的解决办法「建议收藏」
vim编辑时遇到E325: ATTENTION Found a swap file by the name "./.backu.sh.swp"错误代码的解决办法「建议收藏」
       类比windows的这种机制,我们大概也能猜想得到,Linux使用vim出现编辑异常的时候,肯定也是基于同样的机制。下面我们来详细解释下linux出现这种状况的原因。

问题原因:

 我们通过错误E325的提示可以知道,出现这种情况的原因有两种,其一,是当前有其他的进程正在对相同的文档进行编辑;其二,之前的编辑会话被销毁了(crashed)(也就是说,你上次编辑的时候,没有保存就强制离开了。)。
 下面我们来探讨下产生这种问题的根本原因,也就是vim编写文件的真实机制。我们同时开两个窗口,右测窗口使用,watch -n 1 ls -a 命令,表示,每间隔1秒刷新一下ls命令的执行结果。


vim编辑时遇到E325: ATTENTION Found a swap file by the name "./.backu.sh.swp"错误代码的解决办法「建议收藏」

 我们copy /etc/passwd到app目录下,然后编辑这个文件,我们能看到右侧瞬间多出了一个以.swp为后缀的文件名。如下图所示。这就启发了我们,原来我们在编辑文件的时候,并不是对原有文件进行修改和覆盖的,而是新建一个副本,名字叫xx.swp,我们对文件的编辑都放在了这个副本里面,这也是为什么我们能进行撤销的原因,我们并没有对原有的文件进行修改。当我们正常退出时,这个文件就正常消失,而当我们异常退出时,这个文件就会作为隐藏文件,当我们下次启动vim时,它就会提示我们上次编辑时,有一个文件异常退出了,是否要进行恢复。也就是弹出E325错误。当我们异常退出时,这个隐藏文件会帮助我们还原到上次编辑的状态。也就相当于是一个自动保存的功能。


vim编辑时遇到E325: ATTENTION Found a swap file by the name "./.backu.sh.swp"错误代码的解决办法「建议收藏」

解决办法: 

  当我们知道了这个机制,我们就要考虑如何去解决这种问题。

(1)还原到上次编辑的状态,然后再删除掉.swp文件,做法:vim -r  filename(你上次未保存的文件名),会出现以下界面

左侧会出现一个Recovery completed,告诉你文件已经还原到了上次编辑的状态,而右侧会多出一个swo文件,这个文件类似于swp用来保存你修改文件的副本,而swp文件是我们用来还原的副本。当我们还原之后,可以使用rm -f xx.swp 删除掉这个副本。

(2)当我们不需要还原的时候,只需要我们直接删除这个副本就可以了。利用rm命令直接删除这个副本。

vim编辑时遇到E325: ATTENTION Found a swap file by the name "./.backu.sh.swp"错误代码的解决办法「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144180.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 多台路由器堆叠_h3c路由器堆叠配置命令[通俗易懂]

    多台路由器堆叠_h3c路由器堆叠配置命令[通俗易懂]本次网络的拓扑结构是三台交换机连接到一起,依次为A交换机,B交换机和C交换机。交换机A是主交换机,他通过G1/1接口连接B交换机的G1/1接口,通过G2/1连接C交换机的G1/1。所有G端口都设置为VLAN100。这个A交换机作为主交换机完全是网络管理员自己选择的,实际上我们可以随意的将ABC中的任何一个选择为主交换机,大家根据实际情况选择即可。IP地址与Trunk设置:首先将网络的管理VLAN…

    2022年10月17日
    3
  • C#并行计算 Parallel.ForEach[通俗易懂]

    C#并行计算 Parallel.ForEach[通俗易懂]C#并行计算Parallel.ForEach///<summary>///获取订单链接///</summary>publicvoidGetOrders(){GetToken();HttpHelperhttp=newHttpHelper();HttpItemitem=newHttpIte…

    2022年7月19日
    23
  • python输出如何换行_python不换行输入

    python输出如何换行_python不换行输入在我们常用的print()方法进行输出时,通常输出结果是整行显示出来的,这时候我们需要考虑一下,我们输出的结果需不需要换行?python学习网,大量的免费python视频教程,欢迎在线学习!不需要换行的方法也是嗯容易的的,这里就不多赘述了,来说说如何做到输出换行:常用的转义符方式:\n#-*-coding:utf-8-*-A=”来看看能不能\n换行。”print(A)输出结果来看看能不能换行…

    2025年7月18日
    5
  • 生物识别指纹_生物指纹识别技术

    生物识别指纹_生物指纹识别技术锁屏要使用指纹解锁,首先要注册指纹服务,我看过的一些大厂项目中,实际上是在KeyguardUpdate.java类中发起注册的,一般是根据当前状态,是不是已经处于上锁状态(侧边指纹机器,是不等上锁即进行指纹服务注册,屏下指纹需要等上锁后,才发起指纹服务注册)。………………………

    2022年8月10日
    12
  • QHBoxLayout和QVBoxLayout

    QHBoxLayout和QVBoxLayoutQHBoxLayout和QVBoxLayout学习QT到现在,我个人觉得QT挺好学的、也挺难的。好学是因为QT所用的都是类,操作的都是类对象,难呢,是因为都是类,有一些类还需要我们自己去定义、去继承、去重写,我感觉都是一点难点。因为需要理解知道其他的类才可以继承使用。现在我们先看一下我们最常用的类,我学习到目前为止,基本每一个项目都会用到的类QHBoxLayout和QVBoxLayout,两个…

    2022年6月16日
    35
  • sdn和nfv是什么_他她它怎么区分

    sdn和nfv是什么_他她它怎么区分那到底什么是NFV(网络功能虚拟化),它和之前的SDN(Software-definedNetworking)软件定义网络概念是一回事吗?它们有什么区别?SDN-诞生于校园,成熟于数据中心:SDN初始于园区网络,一群研究者(斯坦福的达人们)在进行科研时发现,每次进行新的协议部署尝试时,都需要改变网络设备的软件,这让他们非常郁闷,于是乎,他们开始考虑让这些网络硬件设备可编程化,并且可以被集中的一个盒子所管理和控制,就这样,诞生了当今SDN的基本定义和元素·分离控制和转发的功能·

    2025年10月11日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号