我如何才能一次编辑多个文件的相同部分?

我如何才能一次编辑多个文件的相同部分?

我有多个 HTML 文件,它们组成了一个小型网站。文件顶部有几行重复的代码(尽管有所<title>不同),文件底部也有几行重复的代码。

我可以使用 Jekyll 之类的预编译器,并使用布局,这样我只需要更改一次代码,但我觉得这会给项目增加不必要的复杂性。我可以使用正则表达式(这就是我目前正在做的事情,使用DirDo工具),不过这样有点麻烦。

那么,是否有任何插件可以检测一组文件中的相同部分,并允许您一次编辑所有文件?或者是否有其他我可能没有想到的方法可以做到这一点?

答案1

在 Vim 中,这个问题可以分解为两个部分:

  1. 将编辑应用于多个文件
  2. 重复相同的编辑

对于 1.,您使用的是迪尔多插件;替代方案包括内置的:argdo:bufdo等等。

对于 2.,您可以使用任何 Vim 命令(组合)。最强大的命令是:substitute,使用:[range]选择行,并使用正则表达式(找到要修改的点)修改这些行中的文本。

您还可以录制一个宏,然后通过 重新应用该宏:normal! @a。当然,如果这是在一行开头的单个编辑,则重复通过:[address]normal! .就足够了(但仅限于单个编辑操作和将:normal光标定位在行首的事实)。

答案2

您可以使用CtrlSF 编辑器在所有文件中搜索给定的模式,然后同时使用编辑搜索结果周围的部分vim 多光标。但也有一些限制,例如,您不能添加或删除行,(请参阅README.md)。

相关内容