vi / vim替代sublimetext的“扩展选择范围”


13

Sublime文本具有一个很酷的功能,称为“ 将选择范围扩展到范围SHIFT + CMD + SPACE,可以选择范围内的所有内容。

它选择范围内的所有内容,完美地工作()或[]或{},重复此操作会将范围扩展到其父级。

我希望通过vim实现相同的目的。

Answers:


22

如果您vim愿意,可以使用可视模式(:help visual-mode)和文本对象(:help text-objects)执行此操作。

要选择大括号的块,请执行以下操作:v+ a+ {,选择封闭的块,重复a+ {。请注意,您可以使用i代替来选择仅选择大括号的内容a

这些命令与vim中的其他命令一样,是由一个动作后跟一个文本对象所建立的,其中文本对象可以以数字开头,以包含受该动作影响的更多对象。因此,您也可以通过将其替换vd或将其更正来删除该对象c,等等。

除了和之外(){}还有许多其他对象的文本对象[],例如:

  • a+ w表示一个字。
  • a+ s表示一个句子。
  • a+ p表示一个段落。
  • a+ <表示一个<>块。
  • a+ '表示单引号字符串。
  • a+ "表示双引号字符串。

您可能也有兴趣在环绕插件,它允许你添加/替换/删除字符周围,甚至标签。


是的,我指的是vim。谢谢。有没有办法继续扩展它,例如,[[[event touchesForView: button] anyObject]如果光标靠近touchesForView动作v+ a+ [选择[event touchesForView: button]我想再扩展一个级别?即,[[[event touchesForView: button] anyObject]
palaniraja

3
@palaniraja:是的,您可以在文本对象前面加上一个数字,例如:v+ 2+ a+ [
2013年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.