Estou trabalhando VIm
e tentando configurar um comando de pesquisa e substituição para fazer algumas substituições nas quais posso reutilizar a expressão regular que faz parte da minha cadeia de pesquisa.
Um exemplo simples seria uma linha onde eu quero substituir (10)
a {10}
, onde 10 pode ser qualquer número.
Eu vim até aqui
.s/([0-9]*)/what here??/
que corresponde exatamente à parte que eu quero.
Agora a substituição, eu tentei
.s/([0-9]*)/{\0}/
Mas, isso dá como saída {(10)}
Então eu tentei
.s/(\zs[0-9]*\ze)/{\0}/
No entanto, isso me deu o ({10})
que eu também fecho, mas não o que eu quero.
Acho que preciso de outro tipo de marcação / referência em vez disso \0
, mas não sei para onde procurar. Portanto, a questão é: isso pode ser feito no vim? Se sim, como?
fonte
Herdei recentemente algum código legado e queria substituir todas as ocorrências como:
para
ou
Com base na resposta anterior e na esperança de que alguém se beneficie dela, usei o seguinte comando, que alterará todas as ocorrências:
Se você substituir
%
com.
e remover/g
você vai acabar comisso permitirá que você repasse cada partida e escolha se a altera ou não.
fonte
Better way to enable you to go over each match is to add a "c" to the end of the code, rather than go line-by-line
fonte