Thursday, May 14, 2020

Re: How to search a match on a line and then make a change on the next line?

On Thu, May 14, 2020 at 02:20:07PM -0500, Tim Chase wrote:
>On 2020-05-14 13:32, boB Stepp wrote:

>> Hmm. That is what I was speculating -- that "\1" was empty -- and
>> you have proven that plus giving me another little trouble shooting
>> technique. But an example in the book "Learning the vi and Vim
>> Editors, 7th ed." by Arnold Robbins, Elbert Hannah and Linda Lamb
>> made me believe what I was trying was doable. In chapter 6:
>> Global Replacement on page 82 the authors give this snippet of text:
>>
>> mgibox routine;
>> mgrbox routine;
>> mgabox routine;
>>
>> In this exercise we want to replace "box" with "square". The
>> authors give two ways to accomplish this. One of them is:
>>
>> :g/mg\([ira]]\)box/s//mg\1square/g
>>
>> Here where the line found is also the line to change (unlike mine
>> where I want to change the next line) the "\1" register is
>> accessible.
>
>In this case it's not whether the line is the same but that the
>pattern is the same. By (re)using the pattern from the :g in the :s
>by using an empty pattern here:
>
> s//replacement/flags
>
>it (re)captures the portion captured from the same pattern found in
>the :g part of the command. So if you happened to have two adjacent
>lines both containing "capture", you could do something like
>
> :g/\(capture\)/+s//replacement with \1 in it/
>
>(which has the "+" relative-offset to the line after the initial
>match) to replace the one on the 2nd line with "replacement with
>capture in it".
>
>Hopefully that sheds a bit of light on matters?

I now see the light! Thanks, Tim!

--
Wishing you only the best,

boB Stepp

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/20200514220308.GD17993%40Dream-Machine1.

No comments:

Post a Comment