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?

Respostas:


7

Eu sugeriria usar :Subvertvia Abolish.vim de Tim Pope

:%S/camelCase/anotherCase/g

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


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 
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.