Я знаю, що це старе запитання, і шлях @ 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щоб пропустити небажані збіги - можливо, навіть менше, ніж зайвих обведення, необхідних для обмеження області дії. За звичайних обставин ваші змінні, імовірно, дещо локалізовані до певного кодового блоку.