News for hackers. Stuff that matters.
Re:Advanced Regular Expressions by gustavo_duarte on Thursday May 07, 2009 @01:15PM (#598268)
I've written an automated tool to convert Vim-style regexes to Perl-style. This is kind of a dramatic case as the dialect is very different, but it was a fun thing to write.
Re:Advanced Regular Expressions by DEinspanjer on Thursday May 07, 2009 @02:12PM (#598386)
Is it bi-directional? Is it on the vim.org website somewhere? I find Vim's escape heavy syntax cumbersome and I frequently wish I could write a quick Perl syntax regex and convert it to Vim.

Of course, Vim is one of the few regex engines to support variable width negative look-behinds, so I guess that counts for something. :)

Re:Advanced Regular Expressions by gustavo_duarte on Thursday May 07, 2009 @02:19PM (#598397)
Only Vim -> Perl is fully fleshed out right now. Doing it the other way would be fairly easy though because so much would be reused. Also, with the Vim regexes I had to worry about magicness and so on, the Perl stuff would parse easier.

It's not in Vim.org. I had the code floating around with an MIT license, but it's offline right now. I thought about building a page where you could do the translation (I figured Perl -> Vim is what people would want more) or just use a simple GET request from other code.

Maybe I should do the Perl -> Vim bit and make it available.

Re:Advanced Regular Expressions by staunch on Thursday May 07, 2009 @02:01PM (#598359)
Can you make vim use pcre?
Re:Advanced Regular Expressions by gustavo_duarte on Thursday May 07, 2009 @02:07PM (#598372)
From my look in the Vim sources, it would be tons of work to truly make it use pcre internally.

But I think it wouldn't be hard to do a plugin that translates a pcre into a Vim regex, allowing you to search or replace using pcres.

My code though is not integrated with Vim, it takes a free floating regex and converts it. I used it to convert all the regexes in Vim syntax files and build a syntax highlighter. It was a silly project, just for fun.