繁体   English   中英

Vim匹配矩形区域

[英]Vim matches a rectangle area

我想使用正则表达式匹配Vim中的矩形区域,例如:

abcd test1
abcd test2

我想立刻匹配test1test2 ,但不是abcd s。 test1test2是常量,我们不需要考虑[0-9] ,这只是一个例子)

我想匹配每个列对齐的test1 test2

这个

test1
test2

矩形区域可能出现在任何地方,我不能假设它在“第3列”或类似的东西。

如果它们未对齐,则不匹配。

我试过\\1\\@<=test1\\n\\(.*\\)\\@<=test2但没有运气,因为前瞻打破了一个小组。 (来自:help \\\\@<=

有没有人知道如何只使用vim-regex? 谢谢。


编辑:

一个复杂的例子可能是这个:

aaaaaaaaa
b test1 b
c test2 c
ddddddddd

仅匹配test1test2

使用两个或更多正则表达式是可接受的(一个用于test1 ,另一个用于test2 ?)


EDIT2:

这只是为了好玩,我只是好奇vim可以达到多少,这不是一个严重的问题,它可能对很多人来说很无聊和毫无意义,这对我很好,请不要被打扰,晚安:)

只需搜索/test[0-9 ]即可。 但我认为问题的精神更多的是视觉障碍。 在可视模式下,您可以使用文本对象进行移动。 所以,在这种情况下:

  1. 搜索test1。
  2. 按Control-V(打开可视块模式)
  3. w以直观地选择整个单词。
  4. j可直观地选择第一个下方列中的下一个单词。 (使用范围扩展此矩形块,例如10j将在视觉上选择该列中的下十个项目。)

尝试以下方法找到你需要的匹配语法是/somethingWeAreLooking\\(_.\\)*followedByTheOtherThing

在这种情况下,它将是这样的:

/test\\(_.\\)*[1-9]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM