У меня есть несколько HTML-файлов, которые формируют небольшой веб-сайт. Несколько строк кода дублируются в верхней части файлов (хотя они <title>
отличаются), а несколько строк дублируются в нижней части.
Я мог бы использовать предварительный компилятор вроде Jekyll и использовать макеты, чтобы мне пришлось менять код только один раз, но я чувствую, что это добавляет ненужную сложность проекту. Я мог бы использовать регулярные выражения (что я сейчас и делаю, используяDirDo.vim), но это немного хлопотно.
Итак, есть ли плагин, который определяет идентичные части набора файлов и позволяет редактировать их все одновременно? Или есть какие-то другие способы сделать это, о которых я, возможно, не подумал?
решение1
В Vim эту проблему можно разбить на две части:
- Применение правки к нескольким файлам
- Повторяю ту же правку
Для 1. вы используетеДирДоплагин; альтернативами могут быть встроенные :argdo
, :bufdo
и т. д.
Для 2. вы можете использовать любую (комбинацию) команд Vim. Самая мощная из них — это :substitute
использование a :[range]
для выбора строк и регулярного выражения для (нахождения точки для) изменения текста в этих строках.
Вы также можете записать макрос и повторно применить его через :normal! @a
. Если это единичное редактирование в начале одной строки, повторного сквозного действия :[address]normal! .
будет достаточно (но оно ограничено единичной операцией редактирования и тем фактом, что :normal
позиционирует курсор в начале строки).
решение2
Вы можете использоватьCtrlSF.vimдля поиска заданного шаблона во всех файлах, а затем одновременного редактирования части вокруг результатов поиска с помощьюvim-множественные-курсоры. Однако существуют некоторые ограничения, например, вы не можете добавлять или удалять строки (см README.md
. ).