Инкрементный поиск Vim при замещении

Я ужасен при написании регулярных выражений vim. Всякий раз, когда я пишу его для подстановки, он никогда не срабатывает в первый раз, потому что я неизбежно заканчиваю тем, что пишу что-то Perl вместо vim. При выполнении простого поиска мне намного лучше, потому что у меня включен incsearch, и я вижу в реальном времени, соответствует ли мой шаблон.

Есть ли способ, которым я могу заставить команду s действовать как/(выполнение инкрементного поиска), пока я пытаюсь написать правильный шаблон?

Ответ 1

Я не уверен, но я думаю, что нет способа сделать это. Кстати, я использую небольшой трюк, чтобы ускорить мои замены. Если вы сделаете что-то вроде:

:%s//bar

в командной строке Vim будет использовать ваш последний поиск. Таким образом, это не совсем то, что вам нужно, но все же способ увеличить скорость выполнения заметок.

Ответ 2

Вы можете попробовать этот маленький трюк, чтобы составить свой шаблон поиска, используя incsearch, а затем скопировать шаблон в замену командной строки:

  • Составить шаблон, используя обычный режим /... Вы можете видеть, что ваши шаблоны совпадают. Последний шаблон будет сохранен в регистре @/.

  • Перейдите в режим командной строки и введите эту частичную строку: :%s/

  • Теперь нажмите эти клавиши: <c-r>[email protected]/ Это скопирует последний шаблон поиска в замените команду, которую вы пишете. (<c-r> нажимает клавишу управления-r, а не набирает символы.)