Заміна регулярного виразу змішаного випадку, у Vim


9

Я часто стикаюся з ситуацією, коли в мене є файл із великою кількістю змішаних справ. Наприклад,

CamelCase and camelCase

Я шукаю заміни регулярних виразів Vim для створення,

AnotherCase and anotherCase

Зараз я роблю це в два етапи після візуального вибору ліній,

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

Чи це можливо за один крок заміни, або я повинен розглянути інші параметри, як функція в .vimrc?

Відповіді:


7

Я б запропонував використовувати :Subvertчерез Abolish.vim Тіма Попа

:%S/camelCase/anotherCase/g

Vimcasts епізод: Перевантажений заміщення: руйнуємо


Цей плагін зробив це так просто. Я не заглядав під капот, але думав, що спробую :%S/CamelCase/AnotherCase/g, однак він лише замінює CamelCaseі залишає camelCaseяк є. Нічого страшного, просто щось запам'ятати.
wsams

Можливо, для цього потрібно використовувати смарт-шкатулку або щось подібне, так що будь-які символи верхнього регістру повинні бути великими літерами, але нижній регістр може бути використаний з великої літери.
dash-tom-bang

3

У вас також є поважна шафа .

З

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

ви отримаєте:

 totoTitiTata -> titiTutu
 TotoTitiTata -> TitiTutu
 tototititata -> tititutu
 tototitiTata -> titiTutu
 TototitiTata -> TitiTutu 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.