vim. как выделить слово и перемещаться на следующее одинаковое слово выделяя его тоже а позже заменить все разом?
stackoverflow мой дорогой) Как сделать сею команду? у меня выделяя слово курсор перемещаясь на другое слово тянет выделение по строкам вслед за собой выделяя все на пути. А вроде одну команду нашел, но она просто выделяет как бы маркером их, но ничего не делает с ними, будто просто показывает одинаковые слова но без возможности последующего форматирования
Ответы (2 шт):
Очень сомневаюсь, что выйдет сделать ровно так, как у вас на картинке (по крайней мере, без плагинов), но возможно вас устроит интерактивная замена:
:%s/name/address/gc
Флаг c говорит Vim, чтобы он спрашивал вас
каждый раз, нужно ли в этом месте производить
замену. Вы можете ответить y («да»), n («нет»),
плюс ещё несколько
вариантов. Документация.
Похоже этот плагин как раз делает то, что нужно - mg979/vim-visual-multi
Если это можно выделить столбиком, то можно через блочный режим. Вначале через Ctrl+v переходим в режим блочного выделения, потом стрелками вниз-вверх выделяем столбик и переходим через Shift+i в редактирование. Редактируем обычным способом (будет редактироваться только одна строка). После нажатия Esc все остальные строки отредактируются теми же командами. Ключевой момент, что они отредактируются "теми же командами", поэтому, если это команда, которая меняет по контексту, то оно и будет так.
Я же обычно пользуюсь точкой. Точка повторяет последнюю команду редактирования, даже если она очень и очень сложная.
Допустим, нужно все слова test заменить на data кроме комментариев. Пишем /testenter, видим выделенный текст. жмем i или любую другую команду редактирования и правим как надо (в нашем случае лучше наверно ciw и ввести новый текст). После этого жмем Esc А теперь, главное аккуратно - n - переходим к следующему найденному тексту и если он "правильный", жмем ..
Как только это осваивается, другие редакторы просто отдыхают. Ведь / умеет искать регулярками.
- ещё почитать о точке - https://dev.to/iggredible/vim-use-dot-command-to-save-keystrokes-1c96
- почитать о других плагинах и возможностях - https://stackoverflow.com/questions/11784408/vim-multiline-editing-like-in-sublimetext