Problemas com o Vim Regex

1

Eu tenho uma lista de variáveis que quero comparar na forma

 acceptEncoding == copy.
 authorization == copy.
 cacheControl == copy.
 contentEncodin == copy.
 contentLength == copy.
...

e eu quero transformá-lo em

acceptEncoding == copy.acceptEncoding &&
authorization == copy.authorization &&
cacheControl == copy.cacheControl &&
contentEncodin == copy.contentEncoding &&
contentLength == copy.contentLength &&
...

usando:% s no vim. Eu usei o comando como %s/(.+) == copy\./ == copy. &&/ mas ele não está combinando com nenhuma das instâncias, mas o regex parece estar correto e funciona em regex buddy / outras aplicações regex, existe algo especial sobre o regex do vim: s que faz isso não funcionar? Eu já fui em frente e fiz isso com uma macro, mas quero saber por que o regex estava falhando.

    
por ameer 28.06.2011 / 20:41

1 resposta

3

Você precisa escapar de ( + ) &

%s/\(.\+\) == copy\./ == copy. \&\&/

Isso deve render:

acceptEncoding == copy.acceptEncoding &&
authorization == copy.authorization &&
cacheControl == copy.cacheControl &&
contentEncodin == copy.contentEncodin &&
contentLength == copy.contentLength &&
...
    
por 28.06.2011 / 20:50

Tags