技巧52-用精确的文本对象选择区域
- 文本对象允许操作括号、被引用的文本、XML标签以及其它文本中常见结构。
- 光标在{}内,想高亮{}内的内容:
vi}
- 选中由双引号括起来的字符范围:
va"
- 选中由双引号括起来的字符范围:
vi"
- vi"和va"的区别是前者不包含分隔符后者包含。
- 类似操作还有:
a) ab
a} aB
a]
a>
a'
a"
a` 一对反引号
at 一对XML标签
i) ib
i} iB
i]
i>
i'
i"
i` 一对反引号
it 一对XML标签
用文本对象执行操作
- 只有操作符待决模式中使用文本对象,才能真正展现出他们的能力。
- 可以在可视模式以及操作符待决模式中使用文本对象。
- 每当在命令语法里看到{motion}时,也可以在这个地方使用文本对象。常见的例子:
d{motion}
c{motion}
y{motion}
- c{motion}:删除指定文本,然后切换到插入模式。
- 例如把abcd换成hello的操作为:ci"hello
text::
like "abcd"
opt:
ci"hello<Esc>
结论
- 这些命令都只需要3次按键。都采用了技巧12中提到的简单语法规则。