[英]Vim matches a rectangle area
我想使用正则表达式匹配Vim中的矩形区域,例如:
abcd test1
abcd test2
我想立刻匹配test1
和test2
,但不是abcd
s。 ( test1
和test2
是常量,我们不需要考虑[0-9]
,这只是一个例子)
我想匹配每个列对齐的test1
test2
这个
test1
test2
矩形区域可能出现在任何地方,我不能假设它在“第3列”或类似的东西。
如果它们未对齐,则不匹配。
我试过\\1\\@<=test1\\n\\(.*\\)\\@<=test2
但没有运气,因为前瞻打破了一个小组。 (来自:help \\\\@<=
)
有没有人知道如何只使用vim-regex? 谢谢。
编辑:
一个复杂的例子可能是这个:
aaaaaaaaa
b test1 b
c test2 c
ddddddddd
仅匹配test1
和test2
。
使用两个或更多正则表达式是可接受的(一个用于test1
,另一个用于test2
?)
EDIT2:
这只是为了好玩,我只是好奇vim可以达到多少,这不是一个严重的问题,它可能对很多人来说很无聊和毫无意义,这对我很好,请不要被打扰,晚安:)
只需搜索/test[0-9
]即可。 但我认为问题的精神更多的是视觉障碍。 在可视模式下,您可以使用文本对象进行移动。 所以,在这种情况下:
w
以直观地选择整个单词。 j
可直观地选择第一个下方列中的下一个单词。 (使用范围扩展此矩形块,例如10j
将在视觉上选择该列中的下十个项目。) 尝试以下方法找到你需要的匹配语法是/somethingWeAreLooking\\(_.\\)*followedByTheOtherThing
在这种情况下,它将是这样的:
/test\\(_.\\)*[1-9]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.