我没有太多的机会使用它,但迈克尔史密斯的
vim-indent-object听起来像可能接近你想要的。
使用示例(行号显示为设置号码有效):
1 This is 2 some text 3 with multiple 4 levels of 5 indentation. 6 There is also 7 another stanza.
将光标放在第2,4或5行上,键入vii以选择第2行到第5行。
使用光标在第3行,键入Vai以选择行2到3。
使用光标在第3行,键入Vaiii(或Viiii),选择第2行到第5行(在视觉模式下,多次使用缩进对象可将选择扩展到下一级)。
它定义的文本对象是:
> ai:当前缩进级加上面的一行
当您想要抓取入门行时(例如抓住if和它的“then”块)是有用的
> ii:当前缩进级别
> aI:当前缩进级别加上面一行,下面一行
对于使用“end”语句的语言是有用的:if / endif)。
> iI:当前的缩进级别(实际上,ii和iI是一样的)
这些对象也可以用于期望文本对象的其他命令(即cii删除当前缩进级别并开始插入其替换)。