One way to accomplish this task is to use the :s
regexp to skip the initial part (Is
, in your case) and then use the substitute()
function to make multiple substitutions in the replacement.
In the pattern, you can use the \zs
marker to start matching only after the part you want to skip (so you don't need to take care of repeating the Is
in your replacement.)
In the replacement, you can use \=
to introduce a Vimscript expression (which will allow you to call the substitute()
function), and then you can use submatch(0)
to access the contents of the pattern that matched the :s
command (which is where you want the substitutions to happen.)
Putting it all together:
:s/Is \zs.*/\=substitute(submatch(0), '"\s\+"', ' ', 'g')/
:s/" "/ /g
:g/^Is/s/" "/ /g