使用 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

5.6 Linux Vim撤销和恢复撤销快捷键的更多相关文章

  1. linux vim vi编辑时撤销输入操作

    linux vim vi编辑时撤销输入操作 1,esc退出输入状态 2,u 撤销上次操作 3,ctrl+r 恢复撤销

  2. Vim使用技巧:撤销与恢复撤销

    在使用VIM的时候,难免会有输错的情况,这个时候我们应该如何撤销,然后回到输错之前的状态呢?答案:使用u(小写,且在命令模式下)命令. 但如果有时我们一不小心在命令模式下输入了u,然后刚输入的一大片代 ...

  3. Linux vim三种模式的快捷键

    1.移动光标 数字 + h,j,k,l 上,下,左,右 ctrl-e 移动页面 ctrl-f 上翻一页 ctrl-b 下翻一页 ctrl-u 上翻半页 ctrl-d 下翻半页 w 跳到下一个字首,按标 ...

  4. linux VIM基本命令

    linux VIM命令: vim 在命令行中输入vim,进入vim编辑器 Esc 退出i(插入)命令进行其他命令使用 :sh 进入shell命令行,运行完命令后ctrl+d退出又一次进入vim编辑继续 ...

  5. Linux - vim安装 配置与使用

    一 Vim 简单介绍 曾经一直用vi,近期開始使用 vim,以下将两者做一下比較. vi和vim都是word=%E5%A4%9A%E6%A8%A1&fr=qb_search_exp&i ...

  6. Linux vim程序编辑器

    Tips: 在 vi 里面, [tab] 这个按钮所得到的结果与空格符所得到的结果是不一样的,特别强调一下! 一般模式 移动光标 30↓ 向下移动30行 40→ 向右移动40个字符 gg 移动到档案第 ...

  7. Linux vim(4)

    vim相对于vi做了很多的提升: -VIM支持多集撤销 -VIM可以跨平台运行 —VIM支持语法高亮 -VIM支持图形界面 vim三大模式: command mode vi进入时的默认模式 esc进入 ...

  8. 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9

    摘要: 安全防护:在Linux操作系统下备份恢复技术的应用  原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...

  9. Linux Vim不明原因卡死解决办法

    使用vim的时候,偶尔会碰到vim莫名其妙的僵在那里. 解决方案: 经查,原来Ctrl+S在Linux里是锁定屏幕的快捷键,如果要解锁,按下Ctrl+Q就可以了. 经验总结: 牢记这两个VIM组合键 ...

  10. 经典 Linux & VIM 教程

    简明 Vim 练级攻略: http://coolshell.cn/articles/5426.html VIM快捷键: http://coolshell.cn/wp-content/uploads/2 ...

随机推荐

  1. 微服务全链路跟踪:springcloud集成jaeger

    微服务全链路跟踪:grpc集成zipkin 微服务全链路跟踪:grpc集成jaeger 微服务全链路跟踪:springcloud集成jaeger 微服务全链路跟踪:jaeger集成istio,并兼容u ...

  2. shell脚本中exit命令

    shell脚本中exit命令使用千次阅读 2020-09-30 10:19:54 exit命令用于退出当前shell,在shell脚本中可以终止当前脚本执行. $ exit --help exit: ...

  3. Go进程内存占用那些事(二)

    0x01 最简单的Go程序 package main import ( "fmt" "time" ) func main() { fmt.Println(&qu ...

  4. AndroidStudio 各种异常情况处理大法

    最近使用AndroidStudio出现了.java文件,显示为xml文件等问题,通过各种采坑之后,发现删除本地的缓存文件这个方法最管用,差不多可以根治95%的莫名其妙的问题.解决办法如下: 先将AS关 ...

  5. **错误积累&&防止GG写法总结

    19.3.20 关于int与ll 1.如果一道题时间充足,把全部变量定义成long long 2.特别注意最上面宏定义的变量类型,特别是FOR 3.如果是int,用1LL* ...... **实例,让 ...

  6. win指令学习收集

    要执行多句,需要用到逻辑判断 1 & 2 1成不成功都会执行2 1 && 2 1成功才会执行2 1 || 2 1不成功才会执行2

  7. (赠书)国产开源视觉语言模型CogVLM2在线体验:竟能识别黑悟空

    CogVLM2是一款视觉语言模型(Visual Language Model),由智谱AI和清华KEG潜心打磨.这款模型是CogVLM的升级版本,支持高达 1344 * 1344 的图像分辨率,提供支 ...

  8. 2023/11/16 NOIP 模拟赛

    T1 基于1的算术 标签 暴力枚举 思路1 赛时想了个假的 DP,只拿了 77 分,,, 小于 \(10^{15}\) 的仅由 \(1\) 组成的数只有 \(15\) 个,直接枚举即可. 想了一个做法 ...

  9. 通用能力及AI核心能力表现优异!合合信息智能文档处理系统(IDP)高评级通过中国信通院评估

    数字经济快速发展的背后,全球数据总量呈现出爆发式增长趋势.智能文档处理(IDP)技术能够高效地从多格式文档中捕捉.提取和处理数据,帮助机构和企业大幅提升文档处理效率,节约时间和人力成本.近期,合合信息 ...

  10. RxJS 系列 – 概念篇

    前言 很长一段时间没有写 Angular 了 (哎...全栈的命),近期计划又要开始回去写了,于是就开始做复习咯. 我的复习是从 JS > TS > RxJS > Angular,与 ...