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
5.6 Linux Vim撤销和恢复撤销快捷键的更多相关文章
- linux vim vi编辑时撤销输入操作
linux vim vi编辑时撤销输入操作 1,esc退出输入状态 2,u 撤销上次操作 3,ctrl+r 恢复撤销
- Vim使用技巧:撤销与恢复撤销
在使用VIM的时候,难免会有输错的情况,这个时候我们应该如何撤销,然后回到输错之前的状态呢?答案:使用u(小写,且在命令模式下)命令. 但如果有时我们一不小心在命令模式下输入了u,然后刚输入的一大片代 ...
- Linux vim三种模式的快捷键
1.移动光标 数字 + h,j,k,l 上,下,左,右 ctrl-e 移动页面 ctrl-f 上翻一页 ctrl-b 下翻一页 ctrl-u 上翻半页 ctrl-d 下翻半页 w 跳到下一个字首,按标 ...
- linux VIM基本命令
linux VIM命令: vim 在命令行中输入vim,进入vim编辑器 Esc 退出i(插入)命令进行其他命令使用 :sh 进入shell命令行,运行完命令后ctrl+d退出又一次进入vim编辑继续 ...
- Linux - vim安装 配置与使用
一 Vim 简单介绍 曾经一直用vi,近期開始使用 vim,以下将两者做一下比較. vi和vim都是word=%E5%A4%9A%E6%A8%A1&fr=qb_search_exp&i ...
- Linux vim程序编辑器
Tips: 在 vi 里面, [tab] 这个按钮所得到的结果与空格符所得到的结果是不一样的,特别强调一下! 一般模式 移动光标 30↓ 向下移动30行 40→ 向右移动40个字符 gg 移动到档案第 ...
- Linux vim(4)
vim相对于vi做了很多的提升: -VIM支持多集撤销 -VIM可以跨平台运行 —VIM支持语法高亮 -VIM支持图形界面 vim三大模式: command mode vi进入时的默认模式 esc进入 ...
- 在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 ...
- Linux Vim不明原因卡死解决办法
使用vim的时候,偶尔会碰到vim莫名其妙的僵在那里. 解决方案: 经查,原来Ctrl+S在Linux里是锁定屏幕的快捷键,如果要解锁,按下Ctrl+Q就可以了. 经验总结: 牢记这两个VIM组合键 ...
- 经典 Linux & VIM 教程
简明 Vim 练级攻略: http://coolshell.cn/articles/5426.html VIM快捷键: http://coolshell.cn/wp-content/uploads/2 ...
随机推荐
- 微服务全链路跟踪:springcloud集成jaeger
微服务全链路跟踪:grpc集成zipkin 微服务全链路跟踪:grpc集成jaeger 微服务全链路跟踪:springcloud集成jaeger 微服务全链路跟踪:jaeger集成istio,并兼容u ...
- shell脚本中exit命令
shell脚本中exit命令使用千次阅读 2020-09-30 10:19:54 exit命令用于退出当前shell,在shell脚本中可以终止当前脚本执行. $ exit --help exit: ...
- Go进程内存占用那些事(二)
0x01 最简单的Go程序 package main import ( "fmt" "time" ) func main() { fmt.Println(&qu ...
- AndroidStudio 各种异常情况处理大法
最近使用AndroidStudio出现了.java文件,显示为xml文件等问题,通过各种采坑之后,发现删除本地的缓存文件这个方法最管用,差不多可以根治95%的莫名其妙的问题.解决办法如下: 先将AS关 ...
- **错误积累&&防止GG写法总结
19.3.20 关于int与ll 1.如果一道题时间充足,把全部变量定义成long long 2.特别注意最上面宏定义的变量类型,特别是FOR 3.如果是int,用1LL* ...... **实例,让 ...
- win指令学习收集
要执行多句,需要用到逻辑判断 1 & 2 1成不成功都会执行2 1 && 2 1成功才会执行2 1 || 2 1不成功才会执行2
- (赠书)国产开源视觉语言模型CogVLM2在线体验:竟能识别黑悟空
CogVLM2是一款视觉语言模型(Visual Language Model),由智谱AI和清华KEG潜心打磨.这款模型是CogVLM的升级版本,支持高达 1344 * 1344 的图像分辨率,提供支 ...
- 2023/11/16 NOIP 模拟赛
T1 基于1的算术 标签 暴力枚举 思路1 赛时想了个假的 DP,只拿了 77 分,,, 小于 \(10^{15}\) 的仅由 \(1\) 组成的数只有 \(15\) 个,直接枚举即可. 想了一个做法 ...
- 通用能力及AI核心能力表现优异!合合信息智能文档处理系统(IDP)高评级通过中国信通院评估
数字经济快速发展的背后,全球数据总量呈现出爆发式增长趋势.智能文档处理(IDP)技术能够高效地从多格式文档中捕捉.提取和处理数据,帮助机构和企业大幅提升文档处理效率,节约时间和人力成本.近期,合合信息 ...
- RxJS 系列 – 概念篇
前言 很长一段时间没有写 Angular 了 (哎...全栈的命),近期计划又要开始回去写了,于是就开始做复习咯. 我的复习是从 JS > TS > RxJS > Angular,与 ...