Especifique a função de substituição no editor vi, ao fazer a pesquisa e substituir

1

Eu gostaria de ter a função replace, cujo resultado será usado como substituto, e é preciso corresponder como uma entrada.

Isso é algo disponível em algumas linguagens (Lua, por exemplo).

Por exemplo, imagine que tenho uma lista de sites em um texto e quero substituí-los por valores de ping.

    
por majkinetor 13.12.2012 / 18:41

1 resposta

4

Você pode transformar o padrão de substituição em uma expressão, iniciando-o com \= , para poder chamar funções dessa maneira e passar para essa função com a função submatch() , por exemplo:

:%s/foo .*/\=Foo(submatch(0))/g

(Lembre-se de que a sub-partida 0 sempre significa todo o padrão correspondente).

Veja:

:help sub-replace-expression
:help submatch()
    
por 13.12.2012 / 20:44

Tags