我有多个 HTML 文件,它们组成了一个小型网站。文件顶部有几行重复的代码(尽管有所<title>
不同),文件底部也有几行重复的代码。
我可以使用 Jekyll 之类的预编译器,并使用布局,这样我只需要更改一次代码,但我觉得这会给项目增加不必要的复杂性。我可以使用正则表达式(这就是我目前正在做的事情,使用DirDo工具),不过这样有点麻烦。
那么,是否有任何插件可以检测一组文件中的相同部分,并允许您一次编辑所有文件?或者是否有其他我可能没有想到的方法可以做到这一点?
答案1
在 Vim 中,这个问题可以分解为两个部分:
- 将编辑应用于多个文件
- 重复相同的编辑
对于 1.,您使用的是迪尔多插件;替代方案包括内置的:argdo
、:bufdo
等等。
对于 2.,您可以使用任何 Vim 命令(组合)。最强大的命令是:substitute
,使用:[range]
选择行,并使用正则表达式(找到要修改的点)修改这些行中的文本。
您还可以录制一个宏,然后通过 重新应用该宏:normal! @a
。当然,如果这是在一行开头的单个编辑,则重复通过:[address]normal! .
就足够了(但仅限于单个编辑操作和将:normal
光标定位在行首的事实)。
答案2
您可以使用CtrlSF 编辑器在所有文件中搜索给定的模式,然后同时使用编辑搜索结果周围的部分vim 多光标。但也有一些限制,例如,您不能添加或删除行,(请参阅README.md
)。