山地人

2.删除和撤销

山地人
山地人
2021-05-27

删除操作

除了前一节讲的x删除光标底部字符的方式,Vim还提供了更多样的删除操作。

删除单词

在普通模式下,使用dw可以删除一个单词。这里的d是操作命令operatorw是一个运动的动作motion

dw
  • d 英文全称delete是删除命令
  • w英文全称word是单词 合在一起,就是删除一个单词。

更多删除方式

d$从光标所在位置一直删除到行尾。

$是一个移动的动作,意思是移动到行尾。

操作和动作

在Vim中很多命令是有一个操作符(Operator)和一个运动的动作(Motion)组成。 对于删除,下面的d是一个操作符:

d motion

motion出现在操作符的后面,下面的表格是可以和删除动作d搭配使用的动作motion

动作(motion)说明
w一直到下一个单词的开头,不包括下一个单词的首字母
e一直到当前单词的结尾,包括单词结尾的那个字符
$一直到行的末尾,包括行尾最后一个字符

次数+运动动作

number motion
命令说明
2w光标向前移动两个单词
3e移动光标到第三个单词的结尾
0移动到行首

指定删除次数

operator number motion
d 3 w
  • operator: 这里的d操作,是删除
  • number: 出现在motion前的数字表示要重复motion的次数
  • motion: 运动的方式,这里的w是移动一个单词的长度word

上面的命令d3w合起来意思是:删除3个单词

行操作

number dd
  • number:要重复执行的次数
  • dd:删除一整行。

5dd:删除5行

撤销操作

按下u撤销上次命令,按下大U撤销一整行操作。

小结

  1. 删除光标位置到下一个单词之前: dw

  2. 删除光标位置到行末: d$

  3. 删除一整行: dd

  4. 在动作(motion)前使用个数字,表示重复执行多少次改动作(motion): 2w

  5. 命令格式

operator [number] motion
概念说明
operator要做的操作,如: d 代表 delete 删除
[number]是一个可选数字,用来表示动作重复次数
motion为了执行操作在文本上移动的距离,如:w(一个单词word),$(移动到行尾)
  1. 移动到行首: 0
  2. 撤销上一次操作,输入: u (小写的u) 撤销一行上的所有改动,输入: U(大写的U) 撤销撤销操作,输入: CTRL-R