Hi,
James Vega wrote:
> On Jan 16, 2008 8:39 AM, Jürgen Krämer <[EMAIL PROTECTED]> wrote:
>> The behaviour you want can be achieved with an additional script by
>> Dr. Chip. You can download it from the following url
>
> In Vim7 you can also use the \%V operator as described at ":help
> /\%V". This will limit the match to only the area selected by the
> visual block.
which is a bit awkward to use if you want to make sure that the search
text is completely inside the block, e.g.,
+----+
I. this is |foo |text
II. this is| foo| text
III. this i|s fo|o text
+----+
with a 4x3 block (marked by lines)
'<,'>s/\%Vfoo/bar/
replaces all three occurences of foo.
'<,'>s/\%Vfoo\%V/bar/
only replaces the first one, because \%V only anchors the following
char to the visual block -- and the space after foo is outside of the
block.
'<,'>s/\%Vfo\%Vo/bar/
works (i.e., replaces foo two times), but it is not very intuitive and
does not work in all cases, especially with multis:
+---+
I. this is |bar|r text
II. this is| ba|rr text
III. this i|s b|arr text
+---+
:'<,'>s/\%Vba\%Vr\+/foo/
yields
I. this is foo text
II. this is barr text
III. this is barr text
Note that the first barr has been completely replaced by foo, although
the trailing r should have been kept.
You also cannot anchor the search text to the start of the visual block.
I guess special atoms would be needed that match before the first and
after the last column of a visual block.
Regards,
Jürgen
--
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us. (Calvin)
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---