对于许多文件中的每一个,这是我想做的:
- 搜索所有出现的
<a href
然后开始块选择 - 选择直到第一次出现
>
- 将整个匹配转换为小写
对于许多文件中的每一个,这是我想做的:
<a href
然后开始块选择>
看看这个:
s/<a href\(\_[^>]*\)>/<a href\L\1>/
这表示: match <a href
,后跟除 之外的零个或多个字符>
,包括换行符(由 表示\_
),最后是 a >
。将其替换为<a href
,捕获的文本转换为小写(由 表示\L
),以及尾随的>
.
显然,如果>
您的标签内有某个地方,那么您就是一个人,但这就是生活。
(如果不清楚,您可以将其用作:%s/.../...
或:<range>s/.../.../
用于一些较小的范围。)
要在多个文件上使用它,您将使用windo
、bufdo
或tabdo
(取决于文件是作为选项卡、窗口还是仅作为缓冲区打开)。那里有很多文档:
一般来说,它可能看起来像这样:
:tabdo <range>s/.../.../
:windo <range>s/.../.../
:bufdo <range>s/.../.../ | w
我在 bufdo 版本中添加了一个写入命令,因为它不能在不保存当前缓冲区的情况下移动到下一个缓冲区。如果你想立即写作,你也可以为其他人这样做,但他们会在没有的情况下工作。由您决定是否打开所有文件 - 最简单的方法是vim <lots of files>
将它们作为缓冲区,或vim -o <lots of files>
将它们作为窗口(用于-O
垂直分割而不是水平分割)。