Skip to content

Latest commit

 

History

History
79 lines (49 loc) · 2.19 KB

01_vim10.md

File metadata and controls

79 lines (49 loc) · 2.19 KB

vim 10

通过数字与点可以重复指令

数字

语法

  • 数字 + operation + 动作(范围)
  • operation + 数字 + 动作(范围)

让我们来看一个 demo 来看看如何使用!

需求:删除前 3 个单词

export function helloWorld() {}

你可以很快想出来,敲击 3 次 dw 即可删除,那么更简单的方式就是:直接 d3w,来试试吧!

练习场:

export function helloWorld() {}

所以你肯定明白了,数字的作用就是命令重复的次数,所以你就可以想出来下面的例子:

  • 5j 向下移动 5 次
  • 2fop 查找第二个 op 开头的单词

好处

有连贯的操作历史记录,会将 3 次视为一次操作,在使用 u 撤销时,可以一次撤销 N 次

坏处

需要一个思考的时间,在很多场景下,我们并不知道需要几个数字,所以数字的方式,不是很推荐是使用

重复上一次修改

做了更新操作:

  • 增加
  • 删除
  • 修改

离开插入模式前的全部按键操作都有记录

接下来让我们来通过一个 demo 看看如何使用吧!

需求:打出 xml 并重复 5 次

练习场:

xmlxmlxmlxmlxml
  • 进入插入模式,敲击 xml
  • 退出插入模式,敲击 .,就可重复插入模式中的按键。这种操作,就有点像录制宏指令,而 . 就是触发宏指令的方式

值得注意的是,所有会对文本进行操作的指令都会被记录,例如在 normal 模式下的 x,删除某个字符,同样可以通过 .

对之前指令的优化

在之前,我们想要删除一个单词,但是此时光标在这个的单词的尾部,有下面的方式可以删除:

  • bde: 先回到单词的开头,再删除到单词的尾部
  • dbx: 反向删除到开头,留下一个再 x
  • diw: di 进行删除模式,w 删除一个单词(推荐)因为只有这个指令可以被 . 完整记录

再比如,有了宏指令录制,我们还可以做很多事情:

  • A;: 给一行的尾部加分号, 敲击,退出插入模式,然后再敲击 . 就可以插入分号了
  • diwword: 给某个单词替换为 word

tips

  • 能够重复就不要使用数字