前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vim 之中 U 命令的浅析

vim 之中 U 命令的浅析

作者头像
章鱼猫先生
发布2021-10-15 13:02:43
1K0
发布2021-10-15 13:02:43
举报
文章被收录于专栏:BioIT爱好者

以下文章来源于CSDN,作者翼天使56,本文章经原作者同意后授权转载。

今天看 vim帮助文档的 user-manual 的第二章,发现了还有U(大写)这个命令,于是反复实验,略微搞懂了一点它的用处,特地拿来和大家分享一下!

首先说个人理解吧,个人认为命令U之后有一个缓存,这个缓存每次只保存一行的内容。那么这个缓存什么时候更新呢?两种情况:

  1. 开始编辑某一行之后(注意是之后),这个编辑的概念就是对某一行作出了改变,并且再去编辑其他行之前。那么这个缓存就会保存这一行最开始的内容!如果此时再改变这一行,U的缓存是不会更新的!
  2. 按下U键之后,按下U键之后,U把缓存中的内容还原出来,并且把当前内容存到缓存里面!

举个例子,首先说每次只针对一行,比如说我有一个文件如下(这个句子到底要表达个啥,我也不明白, vim 的 user-manual 就是给出了个这句子!):

然后,我用v+d键首先删除第二行的 Found,然后再删除第一行的 A young。这时文本内容变成了这个样子:

此时,如果我按一下U键,那么还原的将是第一行的内容,如下:

因为U键每回只保存一行的缓存,我编辑完第二行之后,保存的是第二行的缓存,然后我又去编辑第一行,编辑完第一行之后,保存的又是第一行的缓存。编辑完之后,我按下U键,自然就是还原第一行的缓存了!如果我此时再按下U键,又会发生什么情况呢?如下:

为什么会变成这样呢?这是因为我编辑完第一行之后,保存的缓存是 “A young intellingent turtle”(第一点,每次编辑完第一行之后,更新缓存),所以第一次按U第一行会还原成 "A yong intellingent turtle",就在还原的同时, U的缓存自动更新,更新成了 "intellingent turtle",所以在我第二次按下U之后,又把第一行还原成了 "intellingent turtle"。(第二点,按下U键之后更新缓存!)

对于第一点我再举个例子,还是刚刚那个文件,如下:

如果我先删除了第二行的 Found,然后按下返回到了 normal 模式,又去删除了 UNIX,结果如下:

此时,我按下U,那么还原的结果将会是这个样子的,如下:

这就是我在第一点说的,缓存中保存的是(开始编辑)某一行(前)最开始的样子!

Ok,以上就是我对于vimU键的理解,由于本人才疏学浅,若有缪误之处,还请多多指出!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BioIT爱好者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档