Как можно редактировать одинаковые части нескольких файлов одновременно?

Как можно редактировать одинаковые части нескольких файлов одновременно?

У меня есть несколько HTML-файлов, которые формируют небольшой веб-сайт. Несколько строк кода дублируются в верхней части файлов (хотя они <title>отличаются), а несколько строк дублируются в нижней части.

Я мог бы использовать предварительный компилятор вроде Jekyll и использовать макеты, чтобы мне пришлось менять код только один раз, но я чувствую, что это добавляет ненужную сложность проекту. Я мог бы использовать регулярные выражения (что я сейчас и делаю, используяDirDo.vim), но это немного хлопотно.

Итак, есть ли плагин, который определяет идентичные части набора файлов и позволяет редактировать их все одновременно? Или есть какие-то другие способы сделать это, о которых я, возможно, не подумал?

решение1

В Vim эту проблему можно разбить на две части:

  1. Применение правки к нескольким файлам
  2. Повторяю ту же правку

Для 1. вы используетеДирДоплагин; альтернативами могут быть встроенные :argdo, :bufdoи т. д.

Для 2. вы можете использовать любую (комбинацию) команд Vim. Самая мощная из них — это :substituteиспользование a :[range]для выбора строк и регулярного выражения для (нахождения точки для) изменения текста в этих строках.

Вы также можете записать макрос и повторно применить его через :normal! @a. Если это единичное редактирование в начале одной строки, повторного сквозного действия :[address]normal! .будет достаточно (но оно ограничено единичной операцией редактирования и тем фактом, что :normalпозиционирует курсор в начале строки).

решение2

Вы можете использоватьCtrlSF.vimдля поиска заданного шаблона во всех файлах, а затем одновременного редактирования части вокруг результатов поиска с помощьюvim-множественные-курсоры. Однако существуют некоторые ограничения, например, вы не можете добавлять или удалять строки (см README.md. ).

Связанный контент