Friday, March 4, 2011

Re: search and replace with word list

On 03/04/2011 05:55 AM, jcordes wrote:
>>> I would like to have a better understanding of the line
>>>> :%s@.*@:-/MODULEX/s//&
>
> I saw only *two* occurrences of the "@" character -- where is
> the third @? I think I am confused by the fact that this is
> not a straightforward 'substitute' command -- at least so it
> appears to me.

Only the first delimiter is required. The 2nd two are implicit
if omitted. I'd drop you right to it in the help if there was an
exact-tag for it, but if you go to

:help E146

and skim backwards for "omited", you'll hit the somewhat oblique text

"""
If the {string} is omitted the substitute is done as if it's
empty. Thus the matched pattern is deleted. The separator after
{pattern} can also be left out then. Example:
:%s/TESTING
This deletes "TESTING" from all lines, but only one per line.
"""

where "{string}" refers WAAAAAAY back to the "{string}" at the
top of ":help :s"

So the following are all the same:

:%s/foo//
:%s/foo/
:%s/foo

and if "foo" is already in the search buffer as if you did

/foo

(or hit "*" or "#" on the Word "foo"...if you're playing VimGolf
-- at least one of the challenges makes use of this) then you can
even do any of the following which are the same

:%s/
:%s//
:%s///

to get the same result. Then add to that mix the ability to use
non-alphanumeric chars as the delimiter and you arrive at my

s@pattern@replacement_with_lots_of_slashes

as I only want the first one, so I can omit the "@flags"

Hope that helps (and didn't slam you with too much information as
I'm apt to do ;-)

-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

No comments: