domingo, 8 de fevereiro de 2009

Substituindo uma palavra por outra em vários arquivos no vim

Use uma macro para isso.

Inicie o vim com uma lista de argumento contendo todos arquivos a serem alterados:
vim *.cpp

O vim inicia com o primeiro arquivo aberto.

Inicie a gravação da macro no registrador q:
qq

Substitua a palavra:
:%s/\<GetResp\>/GetAnswer/ge

Grava e vá para o próximo arquivo:
:wnext

Pare a gravação da macro:
q

Execute a macro no registrador q:
@q
verifique se não há erro.

Agora execute a macro para os demais arquivos:
999@

A macro, por definição, para de executar quando encontra um erro. Assim, ao não ter mais arquivos ela encerra como se deseja.

No entanto, se um dos arquivos não tem o string, ocorrerá um erro e a macro irá parar antes do tempo.
A flag 'e' no comando substitute previne isso, se não encontrar não dá erro.

0 comentários:

Postar um comentário