Remplacement d'expressions régulières à casse mixte, dans Vim


9

Je rencontre souvent une situation où j'ai un dossier avec beaucoup de cas mixtes. Par exemple,

CamelCase and camelCase

Je cherche un substitut d'expression régulière Vim pour produire,

AnotherCase and anotherCase

En ce moment, je fais cela en deux étapes après avoir sélectionné visuellement les lignes,

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

Est-ce possible en une seule étape de remplacement, ou dois-je rechercher d'autres options comme une fonction dans .vimrc?

Réponses:


7

Je suggère d'utiliser :Subvertvia Abolish.vim de Tim Pope

:%S/camelCase/anotherCase/g

Épisode Vimcasts : Substitution suralimentée avec: Subvert


Ce plugin a rendu cela si facile. Je n'ai pas regardé sous le capot, mais j'ai pensé essayer:%S/CamelCase/AnotherCase/g , mais il ne fait que remplacer CamelCaseet est parti camelCasetel quel . Pas grave, juste quelque chose à retenir.
wsams

Il est probable que vous utilisiez smartcase ou quelque chose à cet effet, de sorte que tous les caractères majuscules doivent être en majuscules, mais les minuscules peuvent être capitalisées si nécessaire.
dash-tom-bang

3

Vous avez également le vénérable coffret .

Avec

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

vous obtiendrez:

 totoTitiTata -> titiTutu
 TotoTitiTata -> TitiTutu
 tototititata -> tititutu
 tototitiTata -> titiTutu
 TototitiTata -> TitiTutu 
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.