Я знаю, що це старе запитання, і шлях @ mykola-golubyev, очевидно, є найкращою відповіддю на конкретний випадок у питанні OP (який, я припускаю, проходить через затуманений код, де у вас, ймовірно, буде кілька блоків з однаковими іменами var) ; але з назвою запитання, подібним до того, що багато людей, які приходять сюди з пошукових запитів Google, напевно, шукають менш конкретні способи перейменування змінних у VIM - і це може бути більш стислим
Я здивований, ніхто не запропонував цього:
*
:s//
НОВА ІМЯ /gc
Це *
те саме, що gn
- він шукає наступне повторення слова під курсором І стає останнім пошуковим шаблоном, тому, коли ви опускаєте шаблон пошуку в команді-заміннику, VIM припускає, що це шаблон для пошуку.
Для невеликої кількості копій var, ще швидшої:
*
cw
<esc>
Потім NEWNAME повторіть n.
для інших випадків
Шукати входження cw
- це команда для слова зміни , n
переходить до наступного входження останнього шуканого терміна і .
повторює останню команду (а це слово змінити на НОВЕ ІМЯ )
(Кредити за те, що я все це знаю, переходять до @doomedbunnies на Reddit )
Ще один цікавий фокус: ( кредити @ nobe4 )
*
cgn
<esc>
Потім NEWNAME повторіть .
для інших випадків
cgn
є "змінити будь-який результат (знайти наступне входження)". Тепер, коли це остання команда , вам не потрібно n
переходити до наступного входження, тому знову буде менше обведень і, що більш важливо, не потрібно чергувати n
і .
. Але, очевидно, цей недолік має відсутність способу пропустити подію.
Ось деякі переваги:
- відсутність відображення, відсутність .vimrc (або init.vim), тому ви можете використовувати його в будь-якій копії VIM, яка вам трапляється (наприклад, швидке завдання на якомусь VPS або машині вашого друга, де налаштування VIM на ваш спосіб переграє мету "швидкого" )
- використання
*
або gn
для вибору слова дуже швидко - лише один натискання клавіші (ну, припустимо, 1,5)
- використовуючи
*
або gn
переконуючись, що ви не отримуєте жодних збігів усередині інших слів, як :%s/<C-R>//gc
це робиться. Біт, набираючи :%s/\<OLDNAME\>/NEWNAME/gc
вручну: я особисто схильний забувати використовувати \<
речі, щоб обмежувати збіги лише цілими словами.
- Невикористання області дії призведе лише до кількох додаткових обведень,
n
щоб пропустити небажані збіги - можливо, навіть менше, ніж зайвих обведення, необхідних для обмеження області дії. За звичайних обставин ваші змінні, імовірно, дещо локалізовані до певного кодового блоку.