Zastępowanie wyrażeń regularnych mieszanymi przypadkami, w Vim

9

Często spotykam się z sytuacją, w której mam plik zawierający wiele różnych przypadków. Na przykład,

CamelCase and camelCase

Poszukuję zamiany wyrażeń regularnych Vima do produkcji,

AnotherCase and anotherCase

Teraz robię to w dwóch krokach po wizualnym wybraniu linii,

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

Czy jest to możliwe w jednym kroku zastępowania, czy powinienem sprawdzić inne opcje, takie jak funkcja .vimrc?

wsams
źródło

Odpowiedzi:

7

Sugerowałbym użycie :Subvertpoprzez Abolish.vim Tima Pope'a

:%S/camelCase/anotherCase/g

Odcinek Vimcasts : Supercharge podstawienie przez: Subvert

Peter Rincker
źródło
Ta wtyczka uczyniła to tak łatwym. Nie spojrzałem pod maską, ale pomyślałem, że spróbuję :%S/CamelCase/AnotherCase/g, ale to tylko zastąpi CamelCasei odejdzie camelCase. Nic wielkiego, tylko coś do zapamiętania.
wsams
Prawdopodobnie używa smartcase lub czegoś w tym celu, więc wszystkie duże litery muszą być duże, ale małe litery można w razie potrzeby pisać dużymi literami.
dash-tom-bang
3

Masz także czcigodną pamiątkę .

Z

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

otrzymasz:

 totoTitiTata -> titiTutu
 TotoTitiTata -> TitiTutu
 tototititata -> tititutu
 tototitiTata -> titiTutu
 TototitiTata -> TitiTutu 
Luc Hermitte
źródło