Sostituzione di espressioni regolari maiuscole e minuscole, in Vim


9

Mi imbatto spesso in una situazione in cui ho un file con molti casi misti. Per esempio,

CamelCase and camelCase

Sto cercando un sostituto dell'espressione regolare di Vim per produrre,

AnotherCase and anotherCase

In questo momento lo faccio in due passaggi dopo aver selezionato visivamente le linee,

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

È possibile in una fase di sostituzione o dovrei esaminare altre opzioni come una funzione in .vimrc?

Risposte:


7

Suggerirei di usare :Subvertvia Abolish.vim di Tim Pope

:%S/camelCase/anotherCase/g

Episodio di Vimcasts : sostituzione sovralimentata con: Subvert


Questo plugin lo ha reso così semplice. Non ho guardato sotto il cofano, ma ho pensato di provare :%S/CamelCase/AnotherCase/g, tuttavia sostituisce CamelCasee lascia solo così camelCasecom'è. Nessun grosso problema, solo qualcosa da ricordare.
wsams,

Probabilmente sta usando smartcase o qualcosa in tal senso in modo che tutti i caratteri maiuscoli debbano essere maiuscoli ma in minuscolo se necessario.
dash-tom-bang

3

Hai anche il venerabile keepcase .

Con

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

otterrai:

 totoTitiTata -> titiTutu
 TotoTitiTata -> TitiTutu
 tototititata -> tititutu
 tototitiTata -> titiTutu
 TototitiTata -> TitiTutu 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.