Я хотів би оптимізувати свій робочий процес "знайти та замінити" у Vim. Це те, що я роблю часто, так як я впевнений, що і більшість із вас. Зазвичай щось поряд з рядками - скопіюйте блок і змініть назву змінної в декількох місцях. Я знаю, я знаю, що, ймовірно, спрацьовує ваш рефлекс "чому ти копіюєш і вставляєш код", але не будемо йти по цій дорозі ... Є безліч дійсних випадків використання :)
Я добре знаю команди пошуку та заміни: :s
або :%s
мені це не подобається. Це змушує мене вводити як повну назву змінної, яку я шукаю, так і те, що я її змінюю. Можливо, є кращий спосіб виправити кількість набраних текстів :%s
? Я часто використовую довгі описові імена змінних, так що це дійсно для мене вимикач угод. Мені також не подобається, як вводити назву змінної з нуля схильне до друку і може забирати час та мозкові сили, щоб виправити помилки. Я дуже вважаю за краще вводити його один раз, а потім копіювати та вставляти, щоб лише уникнути цього, якщо можливо.
У моєму поточному робочому процесі використовується деяка комбінація руху / yank / select / search / put для переміщення по файлу та заміни одного на інший. Це не є великим, але має перевагу уникати введення повних імен змінних. Мені може просто потрібно ввести перші кілька літер /
або використовувати іншу команду руху (наприклад fx
) залежно від того, що навколо, а потім натиснути, ve
щоб вибрати все слово. Я також не заперечую, що мені доводиться повторювати для кожного випадку. Я ніколи не здійснюю повну заміну пошуку, не підтверджуючи кожну зміну. Але було б набагато краще, якби я міг повторити дію заміни одним натисканням клавіші (що я не можу зробити цим методом). кожна заміна, як правило , що - щось на зразок n
то ve
тоді p
(або навіть гірше "0p
)
Чи є швидший шлях?
n
ve
"0p
. Що, на жаль, неможливо повторити лише з.
n ce ctrl-r 0 <esc> n.n.n.n.n.n.
.
повторює останній "командний блок" (не впевнений у точному терміні. Наприклад: переміщення + дія + текст. для прикладу:cwtoto<Esc>
(зміна від курсору до кінця слова на "тото"),c/foo<enter>bar<Esc>
(перехід від курсору до трохи раніше " foo "та замінити на" bar "). Ви можете переміщатись (курсором, hjkl або числом + hjkl (чи не n разів), G (переходити до кінця файлу), / щось (перейти безпосередньо перед" щось ") тощо"), а потім натисніть,.
щоб повторити той самий "командний блок"