vimvireplacesurround

Replacing quote marks around strings in Vim?


I have something akin to <Foobar Name='Hello There'/> and need to change the single quotation marks to double quotation marks. I tried :s/\'.*\'/\"\0\" but it ended up producing <Foobar Name="'Hello There'"/>. Replacing the \0 with \1 only produced a blank string inside the double quotes - is there some special syntax I'm missing that I need to make only the found string ("Hello There") inside the quotation marks assign to \1?


Solution

  • You need to use groupings:

    :s/\'\(.*\)\'/\"\1\"
    

    This way argument 1 (ie, \1) will correspond to whatever is delimited by \( and \).