5.6 Linux Vim撤销和恢复撤销快捷键

使用 Vim 编辑文件内容时,经常会有如下 2 种需求:

  • 对文件内容做了修改之后,却发现整个修改过程是错误或者没有必要的,想将文件恢复到修改之前的样子。
  • 将文件内容恢复之后,经过仔细考虑,又感觉还是刚才修改过的内容更好,想撤销之前做的恢复操作。

基于这 2 种需求,Vim 编辑器提供了撤销和恢复撤销的命令,如表 1 所示。

快捷键 功能 u(小写) undo 的第 1 个字母,功能是撤销最近一次对文本做的修改操作。 Ctrl+R Redo 的第 1 个字母,功能是恢复最近一次所做的撤销操作。 U(大写) 第一次会撤销对一行文本(光标所在行)做过的全部操作,第二次使用该命令会恢复对该行文本做过的所有操作。

注意,以上这 3 种命令都必须在 Vim 编辑器处于命令模式时才能使用。

下面通过一个例子来演示以上 3 个命令的具体用法。首先,我们新建一个 demo.txt 文件并打开,键入一行内容,例如:

http://www.linuxyz.cn

然后按”Esc”键,使 Vim 由输入模式转为命令模式,并使用 yy 命令将这一行文本复制到剪贴板中,如此我们就可以在文本任意位置通过键入 p(或大写的 P)命令将复制的内容粘贴到光标所在的位置。

假设我们将光标调整到第一行最后一个字符处,连续按两次 p 命令(粘贴 2 次),则此时文本中的内容变为:

http://www.linuxyz.cn
http://www.linuxyz.cn
http://www.linuxyz.cn

在此基础上,通过 u(小写)命令就可以使文本内容恢复到上一次做粘贴操作之前的样子,其中”上一次”的含义是,恢复操作是可以叠加的,即按一次就会在现有基础上做一次恢复操作。

比如,继续操作 demo.txt 文件,按一次 u,会发现其文本内容变为:

http://www.linuxyz.cn
http://www.linuxyz.cn

再按一次 u,文本内容继续恢复为:

http://www.linuxyz.cn

同样,恢复撤销的操作和撤销操作是相对应的,通过按 Ctrl+R 组合键,可以撤销之前所做的一次恢复操作。例如,继续操作 demo.txt 文件,按一次 Ctrl+R,会发现其文本内容恢复为:

http://www.linuxyz.cn
http://www.linuxyz.cn

再按一次 Ctrl+R,文本内容又恢复为:

http://www.linuxyz.cn
http://www.linuxyz.cn
http://www.linuxyz.cn

U(大写)的功能和之前的 2 个命令不同,它的作用是撤销或恢复撤销对光标所在行文本所做的全部操作。比如,我们对 demo.txt 文件内容做如下修改:

http://www.linuxyz.cn
http://www.linuxyz.cn
Linux教程 https://www.linuxyz.cn/introduction-to-linux

可以看到,这里对第三行文本做了 2 处修改(红色标注部分)。在此基础上,如果在命令模式下键入 U(大写),可以看到,之前对第 3 行所做的 2 处修改,全部被恢复了:

http://www.linuxyz.cn
http://www.linuxyz.cn
http://www.linuxyz.cn

如果此时再键入 U(大写),则又会恢复之前对第 3 行文本做过的全部操作:

http://www.linuxyz.cn
http://www.linuxyz.cn
Linux教程 https://www.linuxyz.cn/introduction-to-linux

Original: https://www.cnblogs.com/qinlulu/p/16241293.html
Author: 开源Linux
Title: 5.6 Linux Vim撤销和恢复撤销快捷键

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583326/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SpringBoot-JDBC

    SpringBoot-JDBC 8.1 SpringData简介 对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 底层都…

    Linux 2023年6月14日
    097
  • python 正则匹配

    正则匹配 现公司要开发一个业务管理系统,要求注册环节的密码需要提示用户其安全等级,密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分;此外,密码的组成可以由字母,数字,…

    Linux 2023年6月8日
    098
  • Guava 内存缓存的使用

    一、概述 guava⽬前有三种刷新本地缓存的机制: expireAfterAccess:当缓存项在指定的时间段内没有被读或写就会被回收。 expireAfterWrite:当缓存项…

    Linux 2023年6月16日
    0112
  • Golang 在windows下编译Linux下可执行文件

    Windows 下编译Linux 64位可执行程序 set GOARCH=amd64 set GOOS=linux go build 如果想改回来,就 set GOOS=windo…

    Linux 2023年6月11日
    0109
  • QT获取linux下的当前用户名

    故事背景:客户端启动的时候需要加载机器/home/xx/test.jpg的图片作为背景图,但是有的机器用户名叫AAA,有的机器名叫BBB,所以我需要获取当前用户的home目录 技术…

    Linux 2023年6月13日
    0101
  • 网络设备配置–7、配置单臂路由实现跨vlan通信

    一、前言 同系列前几篇:网络设备配置–1、配置交换机enable、console、telnet密码网络设备配置–2、通过交换机划分vlan网络设备配置&#8…

    Linux 2023年6月8日
    0105
  • Linux基线加固

    bash;gutter:true; 1、修改vsftp回显信息 (1)检查办法 修改vsftp回显信息: 需在安装VSFTP的情况下检查,未安装可忽略或禁用该项。 查看ftpd_b…

    Linux 2023年6月13日
    084
  • 4.8 Linux解压.bz2格式的文件(bunzip2命令)

    要解压”.bz2″格式的压缩包文件,除了使用”bzip2 -d 压缩包名”命令外,还可以使用 bunzip2 命令。 bunzip2…

    Linux 2023年6月7日
    084
  • 微步蜜罐部署

    1.下载安装包HFish-Windows-amd64 (Windows x86 架构 64 位系统),解压缩 下载地址反制溯源_欺骗防御_主动防御-HFish免费蜜罐平台 2.进入…

    Linux 2023年6月14日
    095
  • 大数据集群服务启停脚本/常用端口/时间同步

    1、整体启动/停止HDFS start-dfs.sh/stop-dfs.sh 2、整体启动/停止YARN start-yarn.sh/stop-yarn.sh 1、分别启动/停止H…

    Linux 2023年6月8日
    088
  • 华为ensp网络拓扑图使用MSTP、OSPF、DHCP、端口聚合以及PPP(CHAP认证)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0100
  • Linux 用户密码不能设置问题

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0122
  • 实验一-密码引擎-商用密码算法实现2-交叉测试(选做)

    任务详情 把自己实现的商用密码算法SM2,SM3,SM4与OpenSSL交叉验证 自己实现的SM3算法的结果与OpenSSL的结果比对是否一致 自己实现的SM4算法加密的,Open…

    Linux 2023年6月8日
    0105
  • PyTorch 介绍 | LEARN THE BASICS

    大多数机器学习流程都包括数据、创建模型、优化模型参数,以及保存训练模型工作。该教程向你介绍一个在PyTorch上实现的完整的机器学习工作流,并提供了了解这些概念详细信息的链接。 我…

    Linux 2023年6月16日
    0136
  • Python递归遍历目录下所有文件

    递归遍历目录下所有文件 方法一 import os def gci(filepath): #遍历filepath下所有文件,包括子目录 files = os.listdir(fil…

    Linux 2023年6月13日
    0110
  • 02-MySQL关键字、Select语句执行顺序

    SQL关键字 1、分页 MySQL的分页关键词是 limit SELECT * FROM student LIMIT 2,6:查询学生表中的数据,从第三条开始,显示6条数据 2、分…

    Linux 2023年6月7日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球