On 2020-05-14 13:32, boB Stepp wrote: >> :g/\(field [[:alnum:]_]*\)address2/+s/pobox/[\1]pobox/ >> >>you'll see resulting lines like >> >> []pobox >> >>to show that the contents of \1 are empty. > > 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? -tim -- -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/20200514142007.34ce5a94%40bigbox.attlocal.net.
