vim 10
通过数字与点可以重复指令
数字
语法
- 数字 + operation + 动作(范围)
- operation + 数字 + 动作(范围)
让我们来看一个 demo 来看看如何使用!
需求:删除前 3 个单词
ts
export function helloWorld() {}你可以很快想出来,敲击 3 次 dw 即可删除,那么更简单的方式就是:直接 d3w,来试试吧!
练习场:
ts
export function helloWorld() {}所以你肯定明白了,数字的作用就是命令重复的次数,所以你就可以想出来下面的例子:
5j向下移动 5 次2fop查找第二个 op 开头的单词
好处
有连贯的操作历史记录,会将 3 次视为一次操作,在使用 u 撤销时,可以一次撤销 N 次
坏处
需要一个思考的时间,在很多场景下,我们并不知道需要几个数字,所以数字的方式,不是很推荐是使用
点
重复上一次修改
做了更新操作:
- 增加
- 删除
- 修改
离开插入模式前的全部按键操作都有记录
接下来让我们来通过一个 demo 看看如何使用吧!
需求:打出 xml 并重复 5 次
练习场:
xmlxmlxmlxmlxml- 进入插入模式,敲击
xml - 退出插入模式,敲击
.,就可重复插入模式中的按键。这种操作,就有点像录制宏指令,而.就是触发宏指令的方式
值得注意的是,所有会对文本进行操作的指令都会被记录,例如在 normal 模式下的 x,删除某个字符,同样可以通过 .
对之前指令的优化
在之前,我们想要删除一个单词,但是此时光标在这个的单词的尾部,有下面的方式可以删除:
bde: 先回到单词的开头,再删除到单词的尾部dbx: 反向删除到开头,留下一个再 xdiw: di 进行删除模式,w 删除一个单词(推荐)因为只有这个指令可以被.完整记录
再比如,有了宏指令录制,我们还可以做很多事情:
A;: 给一行的尾部加分号, 敲击,退出插入模式,然后再敲击.就可以插入分号了diwword: 给某个单词替换为 word
tips
- 能够重复就不要使用数字