VIM有一项很方便的特性, 就是能够充分利用“重复”(repetition)。 因此, 为了能很好地利用这么一项特性, 在平时, 我们需要下意识地在习惯上去构建这种可重复的变更。

方法总是比问题多, 同样地, 在用VIM解决我们需要的问题的时候, 可采用的方案也是非常多的。 衡量哪种方案相对最高效, 我们可以不妨参考哪个对应方案所需要的按键次数最少(fewest keystrokes)。

Practical Vim》- Tip 9中提供了一个实例, 以及分别列举三种可采用的方案。

好, 让我们开始吧。 (实例, 我就重新换个) 假设, 我们打开一个名为“Tip9.txt”的文本(当然, 用vim)。 里面的内容是:
Hello, i'm test file

实例操作前提: 光标置于文档末位, 即此例中filee: Hello, i'm test file

方案1: 向后删除
开始: Hello, i'm test file
db: Hello, i'm test e
x: Hello, i'm test (光标置于空格之上)

方案2: 向前删除
开始: Hello, i'm test file
b: Hello, i'm test file
dw: Hello, i'm test (光标置于空格之上)

方案3: 删除整个单词
开始: Hello, i'm test file
daw: Hello, i'm test

P.S.: aw在这里代表“text object”, 我们在Tip52中会详细介绍到有关aw

那么, 对比上述三种方案, 哪种方案是最适合用来高效地进行重复性的工作的呢? 通过对前几个Tip的学习和归纳, 我们不难发现, 当我们使用.命令进行重复的时候:
对于方案1的情况: 会使得我们重复x命令。
对于方案2则是: dw
而对于方案3则是完整的: daw

通过对比, 我想, 聪明的你一定已经得出结论了吧。

要说总结和归纳的话, 应该也就是在实际使用过程中, 要下意识更好地构造可重复变更的环境, 比如更高效地使用.命令来重复先前命令以达到自己的目标。

参考: 《Practical Vim》- Tip 9