0

I'm trying to do a search within a visual block, (from a vimscript).

This is my code:

aaaaaaaaaaaa
a26 text tea
atext text a
atext 27 12a
a11 text 25a
aaaaaaaaaaaa

Let say my block selection is within the 'a' border and I want to search all numbers with 2 characters:
This is my search:
/\%V\d\{2}\%V

The problem with the 2nd \%V is that it shortened a visual block selection with 1 characters, it doesn't find the number 12 and 25 in my above example.

How can I extend the visual block selection (in a vimscript) with 1 character to the right, do the search and return to previous visual block selection?

4

1 回答 1

1

好的,那我就把它写成答案,好吧,这是一个答案和问题……:)

\%V从你的模式中删除第二个就可以了。

我首先发表评论,因为......

我个人在我的工作中只使用了一个\%V,它工作得很好。我看到了这个问题,并检查了:h \%V,帮助建议同时使用...并且它是零宽度。我真的不明白为什么 2 \%Vs 不适用于 OP 的问题。

所以,也就是说,我知道如何解决这个问题,但不是100%清楚,是什么原因造成的,我希望其他人能解释一下。

于 2013-04-14T16:50:42.010 回答