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

Reply via email to