On 16/11/09 16:32, ALP wrote:
>
> Hi all,
>
> I'm new to the group so let me know if my question etiquette is
> lacking.
>
> I'm using gvim portable at work which utilizes vim 7.1.42 and in my
> vimrc I can't find the proper syntax for a search/replace regex with
> alternatives in a group; i.e.
>
> " delete all occurrences of foo and bar
> map ,blah :%s/\(foo\|bar\)//g
>
> from googling I've tried replacing "\|" with
> | \| \\|<Bar> \<Bar> \\<Bar> <Bar> and even<Leader><Bar>
>
>
> All either generate an error "Not an editor command" or compile but
> fail to have the desired behavior.
>
> Any thoughts, other permutations to try, or am I just making a silly
> mistake.
>
> Thanks a lot for any comments/thoughts.
I see you have a solution, but with the 'nocompatible' settings (and
'cpoptions' at its "Vim default") I would have tried
:map ,blah :%s/<Bslash>(foo<Bslash><Bar>bar<Bslash>)//g<CR>
i.e., replace
\ by <Bslash> everywhere in the {rhs}
| by <Bar> everywhere in the {rhs}
and add <CR> at the end, to execute the ex-command.
See ":help keycodes"
I might also have used a shorter {lhs}, for instance <F2> or <S-F8>
A different possibility would have been not to use a mapping at all, and
to recall the :substitute from history. Depending on circumstances, one
or the other may be better.
Best regards,
Tony.
--
hundred-and-one symptoms of being an internet addict:
196. Your computer costs more than your car.
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---