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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 国产自动化测试工具「建议收藏」

    国产自动化测试工具「建议收藏」软件测试工具一直是国外的占据了主流!国内鲜有自主研发的。但是最近几年国内逐渐出现了几个,也许发展下去可以与国外主流软件测试工具厂商一较高下。 AutoRunnerhttp://www.spasvo.com/泽众软件TAR终端自动化测试工具宣称是国内最好的银行业务测试工具。 Tester360http://www.tester360.com/亚

    2022年6月5日
    53
  • JavaFX Script语言教程「建议收藏」

    JavaFX Script语言教程「建议收藏」JavaFXScript™(下文中称为JavaFX)语言是一种声明式的静态类型编程语言。它具有第一级函数(first-classfunctions)、声明式的语法、列表推导(list-comprehensions)及基于依赖关系的增量式求值(incrementaldependency-basedevaluation)等特征。JavaFX脚本式语言特别适用于Java2Dswi…

    2022年6月21日
    28
  • 数据结构之数组和链表的区别

    数据结构之数组和链表的区别第一题便是数据结构中的数组和链表的区别数组(Array)一、数组特点:所谓数组,就是相同数据类型的元素按一定顺序排列的集合;数组的存储区间是连续的,占用内存比较大,故空间复杂的很大。但数组的二分查找时间复杂度小,都是O(1);数组的特点是:查询简单,增加和删除困难;1.1在内存中,数组是一块连续的区域1.2数组需要预留空间在使用前需要提前申请所占内存的大小,…

    2022年6月29日
    17
  • 命令行參数选项处理:getopt()及getopt_long()函数使用

    命令行參数选项处理:getopt()及getopt_long()函数使用

    2022年1月19日
    51
  • vue长列表渲染_vray渲染白模教程

    vue长列表渲染_vray渲染白模教程循环在模板中可以用v-for指令来循环数组,对象等。循环数组我们可以用v-for指令基于一个数组来渲染一个列表。v-for指令需要使用iteminitems形式的特殊语法,其中it

    2022年7月29日
    12
  • 图片切割系统_图片切片工具

    图片切割系统_图片切片工具上一阵子做过一个图片切割效果,得到很多人关注。其中有很多人向我询问如何做一个真正的图片切割(裁剪),这里需要声明一下:首先js是不能操作客户端文件的(除非特殊情况),所以图片的切割必须在后台处理,对于

    2022年8月1日
    5

发表回复

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

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