学习VIM模式篇之正常模式Tip9: 构建可重复的变更
VIM有一项很方便的特性, 就是能够充分利用“重复”(repetition)。 因此, 为了能很好地利用这么一项特性, 在平时, 我们需要下意识地在习惯上去构建这种可重复的变更。
方法总是比问题多, 同样地, 在用VIM解决我们需要的问题的时候, 可采用的方案也是非常多的。 衡量哪种方案相对最高效, 我们可以不妨参考哪个对应方案所需要的按键次数最少(fewest keystrokes)。
《Practical Vim》- Tip 9中提供了一个实例, 以及分别列举三种可采用的方案。
好, 让我们开始吧。
(实例, 我就重新换个)
假设, 我们打开一个名为“Tip9.txt”的文本(当然, 用vim)。
里面的内容是:
Hello, i'm test file
实例操作前提: 光标置于文档末位, 即此例中file的e: 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