Visualmente selecione um bloco e substitua cada ocorrência de bloco

0

Estou refatorando algum código e tenho várias ocorrências do mesmo bloco de código. Eu quero pegar o bloco (provavelmente no modo visual) e, em seguida, substituir cada ocorrência dele com uma chamada de método que acabei de definir.

Algo como.

Some block
of code
that I
want to refactor

Some block
of code
that I
want to refactor

Some block
of code
that I
want to refactor

Some block
of code
that I
want to refactor

torna-se ...

method_call(stuff)

method_call(stuff)

method_call(stuff)

method_call(stuff)
    
por Drew 17.05.2012 / 03:50

1 resposta

1

Existem várias maneiras de fazer isso, dependendo de quantas vezes você planeja fazer isso. O método a seguir é bastante simples, pois usa comandos ordinários do Vim, mas pode ser entediante se você tiver que fazer muito isso.

Primeiro, escolha o bloco de código que você deseja refatorar no registro padrão. Por exemplo, mova o cursor para a primeira linha do bloco, digite V , mova o cursor para a última linha do bloco e digite Y . Agora copie o registro padrão para o registro de pesquisa, substituindo as novas linhas por \n .

:let @/ = substitute(@", '\n', '\n', 'g')

Por fim, substitua todos os blocos pelas chamadas de método.

:%s//method_call(stuff)/
    
por 17.05.2012 / 08:08

Tags