vim下删除swp文件

几个选项的内涵
[O]pen Read-Only 只读的方式打开 (E)dit anyway 编辑模式打开,但是不会载入存盘的内容 (R)ecover 编辑模式打开并且加载暂存盘的内容(但是要记得删除那个隐藏文件,要不然还会出现上面的问题那种界面) (D)elete it 直接删除没有保存的内容了 (Q)uit 离开vim (A)bort 忽视这个问题

解决:

直接退出去
删除出现的这个swap文件就可以了
rm .backup.sh.swp

使用vi编辑器编辑文件时,经常会由于非正常退出而产生一个swp文件,以后每次进入时都会提示,非常麻烦。现将网上搜集的解决方法陈列于此:

swp文件产生原因分为:1.当你用多个程序编辑同一个文件时。

        2.非常规退出时。

通常最后的少量改动无法恢复. Vim会在你连续4秒不键入内容时跟磁盘同步一次, 或者是连续键入了200个字符之后. 这可以通过´updatetime´和´updatecount´两个选项来控制. 所以系统如果在有所改动之后但Vim还没有同步时发生了宕机, 那这一部分内容就无法恢复了。

第一种情况的话,为了避免同一个文件产生两个不同的版本 (vim中的原话),还是建议选择readonly为好。

第二种情况的话,你可以 用vim -r filename恢复,然后再把swp文件删除(rm .filename.swp)。

进一步学习: swap-filej 关于交换文件的位置和命名

      :preservej 手工刷新交换文件

       :swapnamej 查看原文件及其交换文件的名字

      ´updatecount´ 连续击键多少次后做一次同步

      ´updatetime´ 多长时间之后做一次同步

      ´swapsync´ 同步交换文件时是否同时做一次磁盘同步

      ´directory´ 列出存放交换文件的目录

      ´maxmem´ 尚未写入交换文件的内容所受的内存限制

      ´maxmemtot´ 同上, 但是针对所有文件

  • 11.1 * 基本恢复

在大多数情况下,恢复一个文件相当简单。假设你知道正在编辑的是哪个文件(并且硬盘

还能用)。可以用 “-r” 选项启动 Vim:

    vim -r help.txt
1

Vim 会读取交换文件(用于保存你的编辑数据的文件)并且提取原文的编辑碎片。如果一

切顺利,你会看到如下文字 (当然了,文件名会不一样):

    Using swap file ".help.txt.swp"
Original file "~/vim/runtime/doc/help.txt"
Recovery completed. You should check if everything is OK.
(You might want to write out this file under another name
and run diff with the original file to check for changes)
Delete the .swp file afterwards. (译者注:中文情况下是:
使用交换文件 ".help.txt.swp"
原文件 "~/vim/runtime/doc/help.txt"
恢复完成. 请确定一切正常.
(你可能想要把这个文件另存为别的文件名,
再执行 diff 与原文件比较以检查是否有改变)
之后可以删除交换文件。

123456789101112131415

为了安全起见,可以用另一个文件名保存这个文件:

    :write help.txt.recovered
1

可以把这个文件与原文件作一下比较,看看恢复的效果如何。这方面 Vimdiff 可以帮很大

的忙

如何使用vim的 diff

用 vimdiff 显示区别

有一种特殊的启动 Vim 的方法可以用来显示两个文件的区别。让我们打开一个 “main.c”

并插入一些字符。在设置了 ‘backup’ 选项的情况下保存这个文件,以便产生 “main.c~”

备份文件。

在命令行中输入如下命令:(不是在Vim中)

    vimdiff main.c~ main.c
1

Vim 会用垂直分割的方式打开两个文件。你只能看到你修改过的地方和上下几行的地方。

     VV                   VV
+-----------------------------------------+
|+ +--123 lines: /* a|+ +--123 lines: /* a| <- 折叠
| text | text |
| text | text |
| text | text |
| text | changed text | <- 修改过的行
| text | text |
| text | ------------------| <- 删除的行
| text | text |
| text | text |
| text | text |
|+ +--432 lines: text|+ +--432 lines: text| <- 折叠
| ~ | ~ |
| ~ | ~ |
|main.c~==============main.c==============|
| |
+-----------------------------------------+
123456789101112131415161718

(这幅图没有显示出加亮效果,可以使用 vimdiff 命令看到更好的效果)

那些没有修改的行会被折叠成一行,这称为 "关闭的折叠"(closed fold)。上图
1

中由 “<- 折起” 标记的行就是一个用一行表示123行的折叠。这些行在两个文件中完全

相同。

标记为 “<- 修改过的行” 被高亮显示,而增加的行被用另一种颜色表示。这可以

很清楚地表示出两个文件间的不同。

被删除的行在 main.c 窗口中用 “—” 显示,如图中用 “<- 删除的行” 标记的行。

这些字符并不是真的存在。它们只是用于填充 main.c,以便与另一个窗口对齐。

折 叠 栏

每个窗口在左边都有一个颜色略有不同的显示栏,图中标识为 “VV”。你会发现每个折叠

在那个位置都有一个加号。把鼠标移到那里并按左键可以打开那个折起,从而让你看到

里面的内容。

对于打开的折叠,折叠栏上会出现一个减号。如果你单击那个减号,折叠会被重新关

闭。

当然,这只能在你有鼠标的情况下使用。如果你没有,可以用 “zo” 打开一个折叠。

关闭使用 “zc”。

用 Vim 做 比 较

启动比较模式的另一种方法是从 Vim 内部开始:编辑 “main.c” 文件,然后分割窗口

显示区别:

    :edit main.c
:vertical diffsplit main.c
12

“:vertical” 命令使窗口用垂直的方式分割。如果你不写这个命令,结果会变成水平分

割。

如果你有一个当前文件的补丁或者 diff 文件,你可以有第三种方法启动比较模式:

先编辑这个文件,然后告诉 Vim 补丁文件的名称:

    :edit main.c
:vertical diffpatch main.c diff
12

警告:补丁文件中必须仅包括为一个目标文件所做的补丁,否则你可能会得到一大堆错

误信息。还可能有些你没打算打补丁的文件被打了补丁。

补丁功能只改变你内存中的文件,不会修改你硬盘上的文件(除非你决定写入改动)。

滚 屏 绑 定

当文件中有很多改动时,你可以用通常的方式滚动屏幕。Vim 会尽可能保持两个文件对

齐,以便你可以并排看到文件的区别。

如果暂时想关闭这个特性,使用如下命令:

    :set noscrollbind
1

跳 转 到 修 改 的 地 方

如果你通过某种方法取消了折叠功能,可能很难找到有改动的地方。使用如下命令可以跳

转到下一个修改点:

   ]c
1

反向跳转为:

    [c
1

加上一个个数前缀可以跳得更远。

消 除 差 异

你可以把文本从一个窗口移到另一个,并以此来消除差异,或者为其中一个文件中增加

几行。Vim 有时可能无法及时更新高亮显示。要修正这种问题,使用如下命令:

    :diffupdate
1

要消除差异,你可以把一个高亮显示的块从一个窗口移动到另一个窗口。以上面的

“main.c” 和 “main.c~” 为例,把光标移到左边的窗口,在另一个窗口中被删除的行

的位置,执行如下命令:

    :dp
1

这将把文字从左边拷到右边,从而消除两边的差异。”dp” 代表 “diff put”。

你也可以反过来做:把光标移到右边的窗口,移到被 “改动” 了的行上,然后执行

如下命令:

    :do
1

这把文本从左边拷到右边,从而消除差异。由于两个文件已经没有区别了,Vim 会把所有

文字全部折叠起来。”do” 代表 “diff obtain”。本来用 “dg” (diff get) 会更好。可是

它已经有另外的意思了 (“dgg” 删除从光标为止到首行的所有文本 )。

vim下删除swp文件的更多相关文章

  1. vim中利用swp文件进行恢复

    经常电脑因为没电或者强行关闭vim,会导致原文件没有保存, 这种情况下vim会自动保存一个.swp文件,需要恢复时, 使用vim -r filename 期中-r意思为recovery 恢复之后最好删 ...

  2. Vim中的swp文件,在vim非正常退出时,再次编辑会出问题

    vim中的swp即swap文件,在编辑文件时产生,它是隐藏文件,如果原文件名是data,那么swp文件名就是.data.swp.如果文件正常退出,则此文件自动删除.以下两种情况不会删除swp文件: V ...

  3. Websphere下删除某个文件(ibm-partialapp-delete.props)

    Websphere下删除某个文件(ibm-partialapp-delete.props)

  4. linux下删除大量文件提示参数过长解决办法

    linux下删除大量文件提示参数过长解决办法:在当前目录下rm -rf * 在linux中删除大量文件时,直接用rm会出现:-bash: /bin/rm: 参数列表过长的错误. 这时可以用find命令 ...

  5. Linux下删除的文件如何恢复

    Linux下删除的文件如何恢复 参考自: [1]linux下误操作删除文件如何恢复 [2]Linux实现删除撤回的方法 以/home/test.txt为例 1.df -T 文件夹 找到当前文件所在磁盘 ...

  6. Windows下删除.svn文件夹的最简易方法

    建立一个文本文件,取名为kill-svn-folders.reg(扩展名由txt改为reg),内容如下: Windows Registry Editor Version 5.00 [HKEY_LOCA ...

  7. windows 下删除.svn文件

    Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] @= ...

  8. linux下删除乱码文件、目录

    由于编码原因,在linux服务器上上传.创建中文文件或目录时,会产生乱码,如果想删除它,发现用rm命令是删除不了的 这种情况下,用find命令可以删除乱码的文件或目录. 首先进入乱码文件或目录所在的目 ...

  9. linux 下删除乱码文件-乾颐堂

    在linux下删除文件,遇到特殊字符是一件非常头疼的事情. 1. 如果文件名带 ‘-’ 或者‘--’这样的字符 删除办法为:rm -- 文件名 如文件名为:-pythontab.tgz 如果用普通方法 ...

  10. Windows下删除顽固文件夹

    参考链接: https://www.cnblogs.com/azbane/p/9808802.html 第一步:修改当前文件夹所有者为管理员 takeown /f * /a /r 第二步:修改管理员权 ...

随机推荐

  1. 定制你的清爽Mac版Edge浏览器

    浏览器每次打开都有个烦人的提示要获取将来的 microsoft edge 更新,需要 macos 10.15 或更高版本,找了很久也没有解决办法,有 windows 端的解决方案,有禁止更新的解决方案 ...

  2. 尴尬:在zoom中找不到会议密码

    临时要开一个zoom会议,点击"新会议"进入,然后邀请其他与会者. "会议" - "复制邀请链接", 得到一行这样的信息(会议号已模糊处理) ...

  3. 火山引擎ByteHouse:如何为OLAP设计高性能向量检索能力?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 背景 随着LLM技术应用及落地,数据库需要提高向量分析以及AI支持能力,向量数据库及向量检索等能力"异军 ...

  4. .NET Core开发实战(第34课:MediatR:轻松实现命令查询职责分离模式(CQRS))--学习笔记(下)

    34 | MediatR:轻松实现命令查询职责分离模式(CQRS) 实际上我们在定义我的查询的时候,也可以这样定义,例如我们定义一个 MyOrderQuery,把订单的所有名称都输出出去 namesp ...

  5. Linux-expect(以交互形式输入命令,实现交互通信)

    1.expect简介 expect是一种脚本语言,它能够代替人工实现与终端的交互,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信. 安装命令: yum install ex ...

  6. jvm的简介

    什么是jvm? java虚拟机就是二进制字节码的运行环境.我们可以把jvm看做是运行在不同系统上的一个软件应用的计算机,就比如说我们要打开图片,就得用看图软件,或者我们要对文件进行解压,是不是得用解压 ...

  7. CF1878C Vasilije in Cacak 题解

    题目传送门 简化题意 有 \(t\) 组询问,每次询问是否能从 \(1 \sim n\) 中选择 \(k\) 个数使得它们的和为 \(x\). 解法 考虑临界情况,从 \(1 \sim n\) 中选择 ...

  8. Linux进程通信 | 消息队列

    什么是消息队列? 假设你是一个快递员,你需要将货物从一个仓库运到另一个仓库.但是你发现自己的时间不够用,需要另外请一个人来帮忙.那么,你们之间如何进行协作呢? 一种方式是直接将货物全部交给对方,但这样 ...

  9. 【Android】使用 MediaMetadataRetriever 获取视频信息

    1 环境配置与初始化 ​ (1)申请权限 ​ 在 AndroidManifest.xml 中的 manifest 标签(application 同级标签)下添加外部存储读写权限,如下: <use ...

  10. Excelize 开源基础发布 2.8.1 版本,2024 年首个更新

    Excelize 是 Go 语言编写的用于操作电子表格办公文档的开源基础库,基于 ISO/IEC 29500.ECMA-376 国际标准.可以使用它来读取.写入由 Microsoft Excel.WP ...