解决vi命令不正常退出导致.swp文件无法删除问题的梦幻之旅

阅读本文只需5分钟

图片来源网络

今天在自己的GitHub的小项目上练习使用Git冲突解决的技能,顺便装了个逼,编辑README.md的时候,直接在Git Bash中使用vi命令编辑,结果就装逼失败了,没错,Vi命令没有正常退出,喵了个咪的...



Vi命令没有正常退出对Git有什么影响呢?

  • 首先,用git status命令查看,发现新加了一个文件(.README.md.swp)。
  • 其次,我发现我删不掉它。

对于一个强迫症患者来说,这个文件简直太碍眼了。既然我并没有创建过这个文件,而且也没什么用,那我就必须删掉它,绝不手软。ok,下面是我删除它的曲折经历:

  • 执行rm .README.md.swp,没有任何输出,“没有消息就是好消息” 现在不灵了,用git status查看,还是一样,没删掉。
  • 去文件系统手动删除,“右键-删除“,没有任何反应,删除失败。
  • 试试“永久删除”,我屮艸芔茻,竟然删除成功了,你以为就这样结束了吗?图样图森破,我刷新一下文件夹,它又回来了。。。


    永久删除在这里
  • 我还有大杀器没祭出来呢!!!哼哼,本来我不想用这招的,但是是你逼我的--文件粉碎,电脑上装的有XX电脑管家,右键直接粉碎。但是不出所料,这个粉碎机还是太嫩了,对付一般的小喽啰还行,显然,现在的这个.swp是个boss,粉碎机大败。
    解决vi命令不正常退出导致.swp文件无法删除问题的梦幻之旅_第1张图片
    文件粉碎机大战.swp
  • 这时候我想起来打开这个.swp文件,看看它里面到底是什么东东,但是打开时提示我:拒绝访问。那好,我申请管理员权限:拒绝访问,我屮艸芔茻,我明明就是管理员,还申请个毛啊,一个鸟样。而且提示“拒绝访问”后,里面一片空白,显然是个假象,我不相信它是空的,因为有4KB的大小。

实际上,上面的删除方式都是不科学的,也正是因为不科学,才导致了无法删除的结果。首先要弄明白这个文件是怎么产生的,实际上,他是我调用Vi命令,启用vim编辑器的时候自动生成的,作用则是用来以防万一,万一出现断电或者强制关闭等事件,vi命令没有正常退出,给我们打开的文件做一个备份,用来恢复文件用的,使用案例:

vi -r README.md

正确的打开方式是这样的,再次使用vi命令打开这个文件:

vi README.md

这时候,因为编辑器会去试着创建一个.README.md.swp文件来临时备份,但是发现已经有了一个叫这个名字的文件,于是,编辑器会提示已经存在了,并且给了你一些选项,问你该怎么处理,选项有只读方式打开、编辑、删除、中止、退出,正常情况下,这时候选择删除就可以解决问题了,也就是输入D,但是,偏偏在我这里又不起作用了,这是让人头大啊!



但是,皇天不负缺心眼地人啊,终于还是找到了问题的关键。按理说,按照上面打开vim编辑器时的提示,再怎么着也该删除成功了啊,但是现在依然无法删除,那么问题就不再文件本身上面了。既然不再文件本身上面,那就可能在打开文件的编辑器上面。我们也经常遇到文件删不掉的问题,那时候一般会提示我们文件在其他地方打开,或正在使用中,因此无法删除。现在删除.README.md.swp时虽然没有明确的占用提示,但是也有可能的,毕竟各种现象都很像。于是,打开任务管理器,一眼就搂到了vim.exe这个进程了,我简直不敢多想,直接结束掉,Duang...



整个世界安静了,随着vim.exe的结束,.README.md.swp文件竟然跟着自动删除了。。。我的天呐,太神奇啦(是我太傻逼了)。

总结

vi命令不正常退出时,可能会导致vim.exe没有正常结束,从而占用了.README.md.swp文件,任你如何捣腾都删不掉的情况,请打开任务管理器,把vim.exe拉出去枪毙五分钟。

你可能感兴趣的:(解决vi命令不正常退出导致.swp文件无法删除问题的梦幻之旅)