Substituição de expressão regular de caso misto, no Vim

9

Costumo encontrar uma situação em que tenho um arquivo com muitos casos mistos. Por exemplo,

CamelCase and camelCase

Estou procurando uma substituição de expressão regular do Vim para produzir,

AnotherCase and anotherCase

No momento, faço isso em duas etapas, depois de selecionar visualmente as linhas,

:s/CamelCase/AnotherCase/g
:s/camelCase/anotherCase/g

Isso é possível em uma etapa de substituição ou devo procurar outras opções, como uma função .vimrc?

wsams
fonte

Respostas:

7

Eu sugeriria usar :Subvertvia Abolish.vim de Tim Pope

:%S/camelCase/anotherCase/g

Episódio Vimcasts : Substituição sobrealimentada por: Subvert

Peter Rincker
fonte
Este plugin tornou isso tão fácil. Não olhei embaixo do capô, mas pensei em tentar :%S/CamelCase/AnotherCase/g, no entanto, ele apenas substitui CamelCasee saiu camelCasecomo está. Não é grande coisa, apenas algo para lembrar.
wsams
É provável que esteja usando smartcase ou algo nesse sentido, para que todos os caracteres em maiúsculas sejam necessários em maiúsculas, mas em minúsculas podem ser capitalizados conforme necessário.
traço-tom-bang
3

Você também tem a venerável maleta .

Com

:SubstituteCase#\ctoto\(Titi\)tata#\1Tutu#g

você obterá:

 totoTitiTata -> titiTutu
 TotoTitiTata -> TitiTutu
 tototititata -> tititutu
 tototitiTata -> titiTutu
 TototitiTata -> TitiTutu 
Luc Hermitte
fonte