Vim: Повторить последнюю замену

В Vim есть несколько способов повторить последнюю замену.

Разработка эффективных рабочих процессов в Vim — это повторение, в первую очередь с использованием . для повторения последней команды. Но Vim также может повторить последнюю замену. Вот несколько вариантов с небольшими отличиями:

  • :& — Повторяет последнюю замену, но сбрасывает флаги. Также работает только с :s.
  • :&& — Повторяет последнюю замену с теми же флагами.
  • :%& — Повторяет последнюю замену для всего файла, сбрасывает флаги.
  • :%&& — Повторяет последнюю замену для всего файла, сохраняет флаги.

А вот бонусный совет, который работает в Нормальном режиме, так что вам придётся ещё меньше печатать:

  • & — В Нормальном режиме повторяет последнюю замену, но сбрасывает флаги.

Зачем может понадобиться сбросить флаги при повторном запуске замены? В конце концов, самый распространённый флаг — это /g, который необходим для одновременного изменения всех совпадений в строке за раз.

Вот веская причина: Возможно вы читали предыдущий совет Vim: Подсчёт вхождений о подсчёте вхождений без изменений. Мы можем объединить эти два совета вместе, чтобы сначала подсчитать количество вхождений шаблона, а затем заменить их:

:%s/something/newthing/gn
:%&g

Ниже в скринкасте демонстрируется этот процесс. Во-первых, мы выполняем замену, но без замены, а только с подсчётом количества вхождений. Затем повторяем со сбросом флагов и собственно делаем замену. Далее мы переходим к другому файлу и повторяем замену с теми же флагами :%&&.

Дополнительные материалы

Предыдущая Статья

Понимание генераторов TypeScript

Следующая Статья

Знакомство с примитивными объектами в JavaScript (первая часть)