20

In Vim is there an option to write regexs in the same style as Awk for example

/sp\{0,\}/
Would be

/sp{0,}/

3 Answers 3

35

Preceding your pattern with \v will make the pattern “magic”, and symbols like { and [ have an interpreted meaning (and literals need to be escaped).

So /\vsp{1,} would find what you wanted (I just tested it).

You can make this a sort of default by remapping / to /\v with the following lines in your vimrc:

nnoremap / /\v
vnoremap / /\v

See :help pattern for more.

0
0

/sp\{0,}

Of course for {0,}, you would be better off using *: /sp* would (same as the above) find an 's' followed by zero or more p's. Note that zero or more is always true, so there's no reason for it in this particular expression.

2
  • This was all good info and very useful. Is there a way to turn of the escaping of special characters in vim? Oct 27, 2011 at 20:00
  • I see what you mean now. I seriously doubt it, that would almost certainly require a different parser developed in parallel, and I doubt it would be a feature with enough demand to justify that extra implementation and maintenance.
    – Kevin
    Oct 27, 2011 at 20:10
-1

Vim does not have an option to emulate awk-style regular expressions, no. There are a lot of dialects of regex, and unfortunately there are always these little dialectical differences to keep track of when going from one tool to another.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .