技巧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中提到的简单语法规则。