Ersatz für reguläre Ausdrücke in gemischten Groß- und Kleinschreibung in Vim

9

Ich stoße oft auf eine Situation, in der ich eine Datei mit vielen gemischten Fällen habe. Zum Beispiel,

CamelCase and camelCase

Ich suche nach einem Vim-Ersatz für reguläre Ausdrücke, um zu produzieren,

AnotherCase and anotherCase

Im Moment mache ich das in zwei Schritten, nachdem ich die Linien visuell ausgewählt habe.

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

Ist dies in einem Ersetzungsschritt möglich, oder sollte ich andere Optionen wie eine Funktion in .vimrcprüfen?

wsams
quelle

Antworten:

7

Ich würde vorschlagen, :Subvertüber Tim Popes Abolish.vim zu verwenden

:%S/camelCase/anotherCase/g

Vimcasts- Episode: Supercharged Substitution durch: Subvert

Peter Rincker
quelle
Dieses Plugin hat das so einfach gemacht. Ich habe nicht unter die Motorhaube geschaut, dachte aber, ich würde es versuchen :%S/CamelCase/AnotherCase/g, aber es ersetzt nur CamelCaseund bleibt camelCasewie es ist. Keine große Sache, nur etwas, an das man sich erinnert.
wsams
Es ist wahrscheinlich, dass Smartcase oder ähnliches verwendet wird, sodass Großbuchstaben Großbuchstaben sein müssen, Kleinbuchstaben jedoch nach Bedarf großgeschrieben werden können.
Dash-Tom-Bang
3

Sie haben auch den ehrwürdigen Aufbewahrungskoffer .

Mit

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

Sie erhalten:

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