--- 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 

Reply via email to