terça-feira, 24 de fevereiro de 2009

Fazendo a mesma alteração em vários arquivos

Mudando uma palavra por outra em vários arquivos.

Coloque todos os arquivos relevantes na lista de argumentos:
:args *.c
o comando localiza todos os arquivos e edita o primeiro.

Agora faça o comando de substituição que rodará sobre todos arquivos:
:argdo %s/\/x_counter/ge | update
:argdo - é um comando que tem como argumento um outro comando. Esse comando será executado para cada arquivo da lista.
%s - substitui em todas as linhas
/\ - aonde tiver o padrão, a palavra 'x_cnt', não o substring
/x_counter/ - mude para esta palavra
g - substitui todas ocorrências na linha.
e - não imprime mensagem de erro caso o padrão não exista no arquivo e continua com o próximo. Sem esse flag :argdo abortaria antes de completar todos arquivos.
| - concatenador de comandos
update - grava o buffer somente se houve modificação.
Outras alternativas são:
:windo
executa seu argumento em todas janelas.
:bufdo
executa seu argumento em todos buffers. Cuidado com este pois pode haver mais arquivos na lista de buffers do que o esperado. Use ':buffers' ou ':ls' para verificar.

0 comentários:

Postar um comentário