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. Delphi 异常处理 详解

    [1] Exception类的定义在SysUtils单元中. [2] Delphi也支持不从Exception继承的异常类,但是我觉得这么做并不十分的明智. 一.异常的源 在Delphi的应用程序中, ...

  2. Hive压缩和存储

    1.压缩 (1)Hive支持的压缩编码 压缩格式 工具 算法 文件扩展名 是否可切分 对应的编码/解码器 DEFLATE 无 DEFLATE .deflate 否 org.apache.hadoop. ...

  3. IDEA 2024.1:Spring支持增强、GitHub Action支持增强、更新HTTP Client等

    有段时间没有更新IDEA了,早上看到 IntelliJ IDEA 2024.1 EAP 5发布的邮件提示,瞄了一眼,发现真的是越来越强了,其中不少功能对我来说还是非常有用的.也许这些能力对关注DD的小 ...

  4. pandas 用户数据分析

    import pandas as pd import numpy as np from matplotlib import pyplot as plt """ 第一部分: ...

  5. JS leetcode 杨辉三角 超详细题解分析

    壹 ❀ 引 刷leetcode的第四天,原题出处为杨辉三角,题目描述如下: 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. ...

  6. 复习一下JVM内存结构

    一.程序计数器 程序计数器内存很小,可以看作是当前线程所执行字节码的行号指示器. 有了它,程序就能被正确的执行. 因为有线程切换的存在,则每个线程必须有各自独立的程序计数器,即线程私有的内存. 这里再 ...

  7. Amlogic电视盒子红外遥控适配笔记

    前一阵做了个安卓6的固件, 在R3300L和Q7上跑的, 其他问题没有, 但是有用户反映原来的遥控器用不了了, 于是检查了一下遥控器配置, 顺便学习一下此类设备的红外遥控机制. 为了方便测试还上淘宝买 ...

  8. 使用DeskPins工具钉住窗口

    需求 我们经常一边看着PDF或视频教程,一边又打开一个文本编辑器/word/markdown编辑器在做一些笔记.问题是有时候呀需要来回切换(alt+tab)窗口,时间长了其实费时费力,这是一名工程师无 ...

  9. Java使用ConcurrentHashMap实现简单的内存式缓存

    需求说明: 实际项目中我打算把用户和组织信息放到缓存中,基于此提出以下几点需求: 1.数据存储在内存中: 2.允许以键值对的方式存储对象类数据并带有过期策略: 3.不限制内存使用,但cache也不能给 ...

  10. Puppeteer介绍

    Puppeteer是什么 Puppeteer是一个Node库,它提供了一个高级API来通过DevTools协议控制Chromium或Chrome. 可以使用Puppeteer来自动化完成浏览器的操作, ...