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