>>> 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:
Post a Comment