Замініть рядок без зміни регістру?


18

З - за жолобник мовою домену конкретного я працюю з, я часто постає завдання (вибірково, чи не глобально) заміни termабо TERMз wordабо WORD, відповідно.

Це означає, що я шукаю регістронезавісімого для term, і ви хочете , щоб замінити це word , зберігаючи при цьому великі букви / нижній регістр оригіналу termнедоторканими .

Оскільки перевірити цілість termна послідовну верхню / нижню літери було б складно і насправді не потрібно, я б погодився з великими / малими літерами word/, WORDякі вирішуються за першою літерою term.

Як я міг цього досягти?


2
Зверніть увагу на "вибірково" для тих, хто цього не знає. Просто додайте cдо кінця заяви про заміну нижче, і Vim запитає вас про кожний матч.
DevSolar

Відповіді:


16

У шафі для плагінів Michaels Geddes є все необхідне:

:%SubstituteCase/\cterm/word/g

Інші елементи синтаксису від :substituteтакож підтримуються.


5
Блискуче ... це значно пришвидшить справи для мене. Я також помічаю, що я більше не запитую "чи можна це зробити", а лише " як це зробити". Здається, я нарешті "приїхав" у Вім. :-D
DevSolar

16

Це може вирішити плагін:Subvert із скасувати :

Одного разу у мене з'явилася програма з доменною моделлю під назвою "об'єкт", яку потрібно було перейменувати на "будівництво". Отже, простий пошук і заміна, правда?

:%s/facility/building/g

О, але варіанти корпусу!

:%s/Facility/Building/g
:%s/FACILITY/BUILDING/g

Зачекайте, множина - це більше, ніж "s", тому нам теж потрібно отримати це!

:%s/facilities/buildings/g
:%s/Facilities/Buildings/g
:%s/FACILITIES/BUILDINGS/g

Abolish.vim має спину. Одна команда виконати всі шість, і ви можете повторити її з & теж!

:%Subvert/facilit{y,ies}/building{,s}/g

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