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. 文心一言 VS 讯飞星火 VS chatgpt (193)-- 算法导论14.3 1题

    一.用go语言,写出作用于区间树的结点且在 〇(1) 时间内更新 max 属性的过程 LEFT-ROTATE 的伪代码. 文心一言: 以下是一个简单的LEFT-ROTATE的伪代码,它对一个二叉搜索树 ...

  2. DNS子域委派配置·

    实验介绍:DNS子域委派的作用 子域即为主域下的一个子域名,当一个子域的流量过大时,主域的DNS服务器可以把一个子域的查询授权给一台专门的子域服务器 注意被委派的服务器必须是委派服务器的子域服务器. ...

  3. Linux--如何查看磁盘的IO(top、iostat)

    问题背景: 在性能测试时,虽然测试出了结果,但是我们并不知道瓶颈是源端,还是目标端.例如我做上传和下载性能验证,从Linux服务器上向OSS集群上传和下载文件,虽然测试出了速率,但是并不知道上传是否存 ...

  4. ABC 314

    F 每次相当于创建一个包含 \(p_i,q_i\) 各自所在集合的点的大点 \(u\),然后 \(u\) 向 \(p_i,q_i\) 各自所在集合连边,边权就是胜率. 连完之后求每个点到根结点(\(\ ...

  5. openai chatGPT 原理通俗介绍

    引言 近年来,随着深度学习技术的不断发展,自然语言处理(NLP)领域取得了长足的进步.ChatGPT(Generative Pre-trained Transformer)作为一种先进的语言生成模型, ...

  6. 基于Android的“哲学家就餐问题”防死锁的设计与实现

    1问题描述 如图1.1,有5个哲学家围着一个大圆桌就餐.哲学家和筷子都按逆时针顺序编号,每个哲学家的编号与他左边的筷子的编号一致. 规定如下: (1)哲学家之间不相互交流: (2)哲学家只做两件事:吃 ...

  7. Git合并固定分支的某一部分至当前分支

    在 Git 中,通常使用 git merge 命令来将一个分支的更改合并到另一个分支.如果你只想合并某个分支的一部分代码,可以使用以下两种方法: 1.批量文件合并 1.1.创建并切换到一个新的临时分支 ...

  8. 获取Linux mac地址(centos与ubuntu通用)

    ip -a addr| grep link/ether | awk '{print $2}'| head -n 1 获取Linux mac地址(centos与ubuntu通用)

  9. Detours 的使用

    Detours 是一个用于在 ARM, ARM64, X86, X64 和 IA64 机器上拦截二进制函数的库. Detours 最常用来拦截应用程序中的 win32 api 调用,比如添加调试工具. ...

  10. Taurus.MVC WebMVC 入门开发教程1:框架下载环境配置与运行

    前言: 之前有网友说 Mvc系列的教程对新手不友好,因此补充新手入门系列教程. 在开始使用 Taurus.Mvc 进行 Web应用开发之前,建议可以观摩一下之前的文章:WebAPI 系列教程 因为两者 ...