Penggantian ekspresi reguler kasus campuran, dalam Vim

9

Saya sering mengalami situasi di mana saya memiliki file dengan banyak kasus campuran. Sebagai contoh,

CamelCase and camelCase

Saya mencari pengganti ekspresi reguler Vim untuk diproduksi,

AnotherCase and anotherCase

Saat ini saya melakukan ini dalam dua langkah setelah memilih garis secara visual,

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

Apakah ini mungkin dalam satu langkah penggantian, atau haruskah saya melihat opsi lain seperti fungsi .vimrc?

wsams
sumber

Jawaban:

7

Saya akan menyarankan menggunakan :Subvertvia Tim Pope's Abolish.vim

:%S/camelCase/anotherCase/g

Episode Vimcasts : Substitusi supercharged dengan: Subvert

Peter Rincker
sumber
Plugin ini membuatnya sangat mudah. Saya tidak melihat di bawah tenda, tetapi saya pikir saya akan mencoba :%S/CamelCase/AnotherCase/g, tetapi itu hanya menggantikan CamelCasedan pergi camelCaseapa adanya. Bukan masalah besar, hanya sesuatu yang perlu diingat.
wsams
Kemungkinan menggunakan smartcase atau sesuatu untuk efek tersebut sehingga setiap karakter huruf besar diharuskan menjadi huruf besar tetapi huruf kecil dapat dikapitalisasi sesuai kebutuhan.
dash-tom-bang
3

Anda juga memiliki koper yang mulia .

Dengan

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

Anda akan mendapatkan:

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