以下是我想要做的事情,对于许多文件中的每一个:
<a href
,然后开始区块选择>
答案 0 :(得分:15)
检查出来:
s/<a href\(\_[^>]*\)>/<a href\L\1>/
这说:匹配<a href
,后跟>
以外的零个或多个字符,包括换行符(由\_
表示),最后是>
。将其替换为<a href
,捕获的文本转换为小写(由\L
表示),尾随>
。
显然,如果标签内部有>
,那么你就是自己的,但这就是生活。
(如果不清楚,您可以将其用作:%s/.../...
或:<range>s/.../.../
用于较小的range。)
要在多个文件上使用此功能,您将使用windo
,bufdo
或tabdo
(取决于文件是以标签,窗口还是仅作为缓冲区打开) 。那里有很多文档:
一般来说,它可能看起来像这样:
:tabdo <range>s/.../.../
:windo <range>s/.../.../
:bufdo <range>s/.../.../ | w
我已经向bufdo版本添加了一个写命令,因为它无法保存当前的缓冲区,无法移动到下一个缓冲区。你也可以为其他人做这件事,如果你想立即写作,但他们可以不用。由您决定打开所有文件 - 最简单的方法是vim <lots of files>
将它们作为缓冲区,或vim -o <lots of files>
将它们作为窗口(使用-O
垂直拆分而不是水平方向)。