在Vim中混合大小写正则表达式替换


9

我经常遇到这样的情况,即我的文件中包含很多混合大小写的文件。例如,

CamelCase and camelCase

我正在寻找可以替换的Vim正则表达式,

AnotherCase and anotherCase

现在,在视觉上选择线之后,我分两步执行此操作,

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

是否可以在一个替换步骤中完成此操作,还是应该研究其他选项(例如in中的函数).vimrc

Answers:


7

我建议:Subvert通过Tim Pope的Abolish.vim使用

:%S/camelCase/anotherCase/g

Vimcasts情节:用:Subvert 替代


这个插件让事情变得如此简单。我没看下面,但以为我会尝试的:%S/CamelCase/AnotherCase/g,但是它只会替换CamelCase并保持camelCase原样。没什么大不了的,只是要记住的事情。
wsams,2016年

可能会使用smartcase或类似的东西,以便所有大写字符都必须为大写,但可以根据需要将小写字母大写。
dash-tom-bang

3

您还拥有古老的保护套

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

您将获得:

 totoTitiTata -> titiTutu
 TotoTitiTata -> TitiTutu
 tototititata -> tititutu
 tototitiTata -> titiTutu
 TototitiTata -> TitiTutu 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.