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

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

  • 对文件内容做了修改之后,却发现整个修改过程是错误或者没有必要的,想将文件恢复到修改之前的样子。

  • 将文件内容恢复之后,经过仔细考虑,又感觉还是刚才修改过的内容更好,想撤销之前做的恢复操作。

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

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

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

http://c.biancheng.net

然后按“Esc”键,使 Vim 由输入模式转为命令模式,并使用 yy 命令将这一行文本复制到剪贴板中,如此我们就可以在文本任意位置通过键入 p(或大写的 P)命令将复制的内容粘贴到光标所在的位置。假设我们将光标调整到第一行最后一个字符处,连续按两次 p 命令(粘贴 2 次),则此时文本中的内容变为:

http://c.biancheng.net

http://c.biancheng.net

http://c.biancheng.net

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

http://c.biancheng.net

http://c.biancheng.net

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

http://c.biancheng.net

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

http://c.biancheng.net

http://c.biancheng.net

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

http://c.biancheng.net

http://c.biancheng.net

http://c.biancheng.net

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

http://c.biancheng.net

http://c.biancheng.net

Linux教程 http://c.biancheng.net/linux_tutorial/

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

http://c.biancheng.net

http://c.biancheng.net

http://c.biancheng.net

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

http://c.biancheng.net

http://c.biancheng.netLinux教程

http://c.biancheng.net/linux_tutorial/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/133272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Symfony DomCrawler库

Symfony DomCrawler库是Symfony框架中的一个组件,用于解析HTML或XML文档,并提供了一种方便的方式来查询和操作文档中的元素。 使用DomCrawler,你可以: 加载HTML或XML文档,并创建一个Crawler对象。 使用CSS选择器或XP…

Spring 与 Spring Boot

什么是 Spring 可以理解 Spring 是一个框架。这个框架最早来源于在差不多的 20 年前的 2002 年。 在那个时候 Java 世界的开发还是以 EJB 为主,因为在这之前的大部分应用都会使用服务器客户端的应用模式。 其实这个模式在现在还是在使用的,例如 IBM 系统…

二十三种设计模式全面解析-深入解析桥接模式:解锁软件设计的灵活性

在软件开发中,我们经常面临需要处理多个不同维度变化的情况。这些变化可能涉及多个维度的组合,导致类的爆炸性增长和难以维护的代码。在这种情况下,桥接模式(Bridge Pattern)是一种强大的设计模式,能够帮助…

iOS渲染卡死应该如何解决

1)iOS渲染卡死应该如何解决 2)C#传给C的Byte数组如何释放 3)EAssetBundle.Unload(true)触发长时间卡顿的原因 这是第358篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点&#x…

企业级SpringBoot单体项目模板 —— 使用 AOP + JWT实现登陆鉴权

😜作 者:是江迪呀✒️本文关键词:SpringBoot、企业级、项目模板☀️每日 一言:没学会走就学跑从来都不是问题,要问问自己是不是天才,如果不是,那就要一步步来 文章目录 使用JWT实现…

【MySQL事务篇】多版本并发控制(MVCC)

多版本并发控制(MVCC) 文章目录 多版本并发控制(MVCC)1. 概述2. 快照读与当前读2.1 快照读2.2 当前读 3. MVCC实现原理之ReadView3.1 ReadView概述3.2 设计思路3.3 ReadView的规则3.4 MVCC整体操作流程 4. 举例说明4.1 READ COMMITTED隔离级别下4.2 REPEATABLE READ隔离级别下 …

四.pyqt5 登录界面和功能

一.使用qt creator 设置登录界面 主界面为之前设计的界面 from123.py 文章地址:三.listview或tableviw显示 二.导出ui文件为py文件 # from123.py 为导出 py文件 form.ui 为 qt creator创造的 ui 文件 pyuic5 -o x:\xxx\Fromlogin20230809.py form.ui三.python 显…

网上书店项目

源码下载地址 支持:远程部署/安装/调试、讲解、二次开发/修改/定制 程序运行视频查看 管理员 图书管理 添加图书 删除图书(可批量删除) 修改图书 查看图书(分页查看) 图书上下架(可批量处理) 图书推荐(新品推荐、精品推荐,可批量处理&#…

关于 HTML 的一切:初学者指南

HTML 代表超文本标记语言,是用于创建网页和 Web 应用程序的标准语言。 本指南将全面介绍 HTML,涵盖从基本语法和语义到更高级功能的所有内容。 我的目标是用简单的术语解释 HTML,以便即使没有编码经验的人也能学习如何使用 HTML 构建网页。…

【寒武纪(4)】图像处理硬件加速,基于CNCVE

基本概念 1、handle 句柄标识不同任务 2、对于调用上,支持阻塞和非阻塞。使用bInstant标识。 3、查询query可以确认调用是否完成 4、及时刷新cache。CNCVE 硬件的唯一数据来源是DDR,防止CPU访问导致cache内存干扰,需要调用cnsysMacheOperate…

Centos7上Python克隆与对网页完整截图

有用的话谢谢点赞~ 安装Python3.11 cd /root wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz tar -xzf Python-3.11.0.tgz yum -y install gcc zlib zlib-devel libffi libffi-devel yum install readline-devel yum install openssl-devel openssl11 ope…

【qemu逃逸】GACTF2020-babyqemu

前言 虚拟机用户名:root 无密码 设备逆向 题目去掉的符号,经过逆向分析,实例结构体如下: 可以看到 arr_int_8 数组后面存在一个函数指针,不用想基本上就是劫持该函数指针了。 denc_mmio_read 函数 这里存在越界读…

[100天算法】-x 的平方根(day 61)

题目描述 实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4 输出: 2 示例 2:输入: 8 输出: 2 说明: 8 的平方根是 2.82842...,由于返回类型…

盘点苹果手机导出照片到电脑的3个方法!

大家都知道,手机中的照片是非常占用空间的。特别是对喜欢拍照的女生来说,每一张照片都很珍贵,并且也不舍得删除,所以想要将照片导出到电脑上进行保存。这样,也方便以后进行恢复与查看。 对于想要将苹果手机上的照片导…

英飞凌TLF35584规格书中文

官网: 英飞凌TLF35584QVVS2 TLF35584_SPI: 1 Overview2 Block Diagram3 Pin Configuration3.1 Pin Assignment - PG-VQFN-48 4 General Product Characteristics4.1 Absolute Maximum Ratings 绝对最大额定值4.2 Functional Range4.3 Thermal Resistance…

2.9 CSS 响应式布局

1.媒体:media 媒体类型: all:检测所有设备。screen:检测电子屏幕,包括:电脑屏幕、平板屏幕、手机屏幕等。print:检测打印机 媒体特性: width:检测视口宽度。max-width:…

【Spring】bean的配置

文章目录 1. 前言2. name3. lazy-init4. init-method5. destroy-method6. factory-method和factory-bean 1. 前言 在之前的文章中.写到过bean的常用配置,当时只是介绍了bean标签中的常用属性配置:class,id和scope这三个属性. 不熟的小伙伴可以看一下这篇文章:【Spring】IOC容器…

利用mybatis-plus的分页插件在xml文件中联表查询实现分页(MySQL数据库)

文章目录 准备工作Mybatis-Plus分页插件配置进行分页测试domain层Controller层Service层ServiceImplMapper层分页接口测试带其他条件的分页查询 自定义的 mapper#method(xml文件中) 使用分页domain层Controller层Service层ServiceImplMapper层UserMapper…

在搜索引擎中屏蔽csdn

csdn是一个很好的技术博客,里面信息很丰富,我也喜欢在csdn上做技术笔记。 但是CSDN体量太大,文章质量良莠不齐。当在搜索引擎搜索技术问题时,搜索结果中CSDN的内容占比太多,导致难以从其他优秀的博客平台中获取信息。因…