--- Tim Chase <[EMAIL PROTECTED]> wrote:
> > I have to replace every occurrence of % in a file
> with
> > % |. I have been effectively replacing text using
> the
> > following construct:
> >
> > :%s/\<text\>/replacement/g
> >
> > However when I try to do the following:
> >
> > :%s/\<%\>/% |/g
> >
> > I am greeted by an error message. Obviously, the %
> > character needs to be treated differently for
> being
> > replaced. Escap sequence?
>
> The error message returned should give a clue
> regarding the
> problem ("E486: Pattern not found: \<%\>"). Your
> pattern
> "\<text\>" works well for words, ensuring that you
> don't find
> them as a sub-portion of some other word (such as
> finding the
> "foo" in "food", "snafoo", or "confoosion").
> However, the "\<"
> and "\>" tokens require a transition from a
> non-word-character to
> a word-character (or vice-versa). The "%"
> character, by default,
> is not a key-word character (though this can be
> altered by
> changing the 'iskeyword' setting).
>
> Unless there is some context in which you *don't*
> want to replace
> a "%" with "% |", you can just use
>
> :%s/%/% |/g
>
> without the "\<" and "\>" markers. You can read
> more about the
> problematic operators at
>
> :help /\<
>
> or making them part of the set of characters that
> constitute a
> keyword, by reading at
>
> :help 'iskeyword'
>
> HTH,
>
> -tim
>
Thanks. The problem is now resolved.
--
Muhammad Farooq-i-Azam
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com